質問

きっと正しく伝わったのだと思う 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邸、米国陸軍輸送そして通常の状況を順に実行する:

  1. 親会
  2. foo
  3. boo

すべての思いをスキップ親会の構築に当たるので、これまでこのコマンドラインスイッチ

mvn install –rf foo

ます --resume-from 何でもないスキップ親から引き続きfooモジュールです。現在の研究にも取り組んだこの設定により、原子炉プラグイン P.S. せできません) でも、スイッチ、上記のシナリオ作品を細かく

これは、同じ質問、のMavenに@ romaintazの答えによって暗示される - スキップ親プロジェクトのビルドする

ちょうど親に、これを明示的にするためには、それはあなたがポンポンとしてパッケージング要素を指定(してJARまたは戦争ではない)ことが不可欠だPOM。
例:

<packaging>pom</packaging>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top