Mavenローカル-スキップ親会社プロジェクトを構築
-
19-09-2019 - |
質問
きっと正しく伝わったのだと思う mauvaisトン 問二一日もいつものようにMaven puzzler:
私は親POMにより定義の5つのモジュール(5つのカテゴリ).それぞれのモジュールが実行されようき <profile><build>
章の親POMく重複コードです。現場の実行の構築を個別に各モジュールで作品をしばったものすべてのモジュールの一括移動の親ディレクトリかエラーで最初のものMavenを行は、親会社プロジェクトそのもの:
mvn package -P release
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] DWD Parent project
[INFO] Projects
その後の構築に失敗したのでexecプラグインを実行するものがございません。を見出すことは非常にわかる原子炉プラグインの構築がしたいので原子炉の設定をスキップの親会社?
P.S.混乱を避けるために(私のように抑えるプロの実行には親が子どもの same
の構築
解決
何が間違っているビルの親会社?
実際に、Mavenが異なる二つの概念(一般的には同時に使用):
- 親会社POM
- のモジュール集合
目が定義のあることは共通のもあります。を定義する親会社として、pom-パッケージプロジェクトは、インストールすることができます。
を構築する場合は、児童の親、Maven2のまま取得するこ親会社の親会pomの子pom.ご覧いただけます。全体にpom.xml については、コマンド mvn help:effective-pom
.
この場合、親pomは、これまでから取得したリポジトリ
第二のプロジェクトを含む modules
リストのデザインされました。その原理は全てのコマンドを走行することがこのプロジェクトにおけるベストセラーであるサブモジュールです。のモジュール定義することにより、炉の見インターモジュールの依存関係にあるモジュールが必要以前に建てられた。がない場合の依存関係は、その一覧はモジュールとして定義され、親会社pom.xml.
この場合、行った場合、コマンドのルートプロジェクト,Maven2ますが、最初のルートプロジェクトのサブモジュールです。す できない ページ内移動用の創出の根プロジェクト.
編集、RichSellerコメント
完全な説明の違いをマルチモジュール集計プロジェクト)と継承(親会社プロジェクト)"にあるMaven書 こちらの.
他のヒント
あなたは親のビルドをスキップすることはできませんが、少しハックで活性化されないようにプロファイルを設定することができます。 この回答には、プロファイルの起動を制御する方法を示していますファイルベースの<activation>
要素の存在または不在。この方法は、あなたは親にプロファイルを定義し、それが原因で親に存在するマーカーファイルをそのプロジェクトに無効にすることができます。子プロジェクトは、そのソースにマーカーファイルを持っていないので、プロファイルは、それらのプロジェクトのために活性化することが考えます。
アップデート:私のテストプロジェクトでは、この構成では、プロファイルが(SRC /メイン/リソース内のファイルを持っている)親プロジェクトに無効化されて意味するが、そのリソースにファイルを持っていないすべての子プロジェクトで活性化ディレクトリます。
<profile>
<id>test</id>
<activation>
<file>
<missing>src/main/resources/test.marker</missing>
</file>
</activation>
...
</profile>
私は私の状況(提案のためのメーリングリストMavenのユーザーのみんなに感謝)への部分的な妥協があることを文書化します。基本的には2枚でプロファイルをチョップする必要があります。プラグインの再利用可能なconfiguration
セクションでは、親POMになり、executions
は子供POMに留まります。そして、子供のプロファイルプラグインはinherited
出来上がりとしてマークされている - それはexecutions
部分が欠落していますので、実行時に親プロファイルは実行されません。これは、理想的にはほど遠いですが、それは動作しません。このリンクにはを参照してください>例えば
する事が出来なかった実在"ファイルのソリューションによるリセラーです。この設定アクティブ/アクティブ状態のプロファイル変更はできませんのででものマーカーのファイルが抜けてからのモジュールします。しかしこの厳密解は私の問題です。警告:このはじめMaven2.1+
している場合は、親POM2モジュール定義:foo邸、米国陸軍輸送そして通常の状況を順に実行する:
- 親会
- foo
- boo
すべての思いをスキップ親会の構築に当たるので、これまでこのコマンドラインスイッチ
mvn install –rf foo
ます --resume-from
何でもないスキップ親から引き続きfooモジュールです。現在の研究にも取り組んだこの設定により、原子炉プラグイン P.S. せできません) でも、スイッチ、上記のシナリオ作品を細かく
これは、同じ質問、のMavenに@ romaintazの答えによって暗示される - スキップ親プロジェクトのビルドする
ちょうど親に、これを明示的にするためには、それはあなたがポンポンとしてパッケージング要素を指定(してJARまたは戦争ではない)ことが不可欠だPOM。
例:
<packaging>pom</packaging>