私のプロジェクトでは、カスタム Maven プラグインを使用する必要があります。できればローカル リポジトリを台無しにすることなく、簡単にビルドする方法を探しています。
単純なプロジェクト ツリーを考えてみましょう。
root-project
|---pom.xml
|---my-library
| \---pom.xml
|---my-maven-plugin
| \---pom.xml
\---my-project
\---pom.xml
root-project
<modules>
内部としてリストされている 3 つのサブプロジェクトがあります。主なものは、ビルド プロセス中にmy-project
使用my-maven-plugin
されるため、最初にプラグインをビルドする必要があります。
私がやりたいことは、単に実行することです:
root-project $ mvn package
これはmy-maven-plugin
最初にビルドし、 のビルド中に使用する必要がありmy-project
ます。
残念ながら、これは機能しません。「プロジェクトのスキャン中...」フェーズ中に Maven が動作を停止し、次のエラー メッセージが表示されます。
Unresolveable build extension: Plugin test:my-maven-plugin:1.0 or one of its dependencies could not be resolved: Could not find artifact test:my-maven-plugin:jar:1.0
最初にやればうまくいく
$ cd my-maven-plugin
$ mvn install
$ cd ..
$ mvn package
見栄えがよくありません。ただし、実際の問題は、プラグイン自体がmy-library
(ルートの別の子モジュールである) に依存していることです。したがって、プラグインをビルドする前に、ライブラリ ディレクトリに入ってインストールする必要があります。プラグインに「内部」依存関係を追加するたびに、事態はますます悪化しています。その結果、ローカル リポジトリが混乱し、プロジェクトを再構築するために多くの手動手順が必要になります。
最初にプラグインをビルドし (deps を使用)、後でプロジェクトのビルド中に使用する必要があることを Maven に伝える方法はありますか?