どこにもホストされていないサードパーティの依存関係が多数あります。これらのそれぞれについて、リポジトリにインストールおよび/またはデプロイできるようにしたいjarファイルがあります。一部の jar ファイルには独自の依存関係があり、これらも宣言する必要があります。
groupId、artifactId、依存関係などを宣言する各 jar ファイルの pom.xml ファイルを作成しました。これらの pom.xml ファイルにはすべて、共通の情報 (<repositories>
および など<distributionManagement>
) を宣言する共通の親 pom があります。
mvn install
これらの依存関係をand mvn deploy
(またはおそらくmvn install:install-file
and )のような単純なものでインストールまたはデプロイしmvn deploy:deploy-file
、これらのコマンドに必要なすべてのプロパティ ( artifactId
、repositoryId
など) を pom.xml ファイルから読み取れるようにしたいと考えています。
これを機能させるために、少なくとも展開のために、親のpomに次を入れてみました:
<build>
<plugins>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.4</version>
<configuration>
<file>${jarfile}</file>
<pomFile>pom.xml</pomFile>
<repositoryId>our-id</repositoryId>
<url>our-url</url>
</configuration>
</plugin>
</plugins>
</build>
次に、各子 pom でjarfile
プロパティを定義します。これにより、実行mvn deploy:deploy-file
してすべての子 pom アーティファクトをデプロイできます。おそらく、私はmvn install:install-file
仕事に就くために同様のことをすることができます。
しかし、このアプローチでは、親の pom を解放できません (子の pom がそれに依存しているため、これを行う必要があります)。親の pom を解放しようとするとmvn release:perform
、次のようなエラーが発生します。
Cannot override read-only parameter: pomFile
私はおそらくこれについて間違った方法で進んでいるような気がします。私が本当にやりたいことは次のとおりです。
- すべてのサードパーティ jar の共通コードを 1 つの共有親 pom に入れる
- サードパーティの jar ごとに追加の最小限の pom を書き込む
- 複雑なコマンド ライン プロパティをすべて指定する必要なく、
mvn install
またはのようなものを実行できるmvn deploy
どうすればそれを達成できますか?
編集:理想的には、コマンドラインでプロパティを指定する必要がないmvn install
か、同じくらい単純なものを実行できるようにしたいということを明確にしました。mvn deploy