2011-07-13 9 views
2

私はマルチモジュールのプロジェクトを持っています。それには5つのモジュールがあり、そのうち2つはWebプロジェクトです。戦争プロジェクトのみの親のpomとmavenの目標

私はプラグインをカスタマイズして戦争プロジェクトでのみ実行したいと考えています。私は親のポンのレベルで私は私の目標を引き起こしたいと思い、私の戦争プロジェクトだけが影響を受けることを意味します。それのための方法はありますか?

この結果、私は戦争プロジェクトpomで重複した設定を行うことはありません。

おかげ

答えて

2

あなたは(あなたの戦争のプロジェクトが継承されている)戦争の親ポンポンと(誰もが継承される)一般的な親ポンポンを構築することができます。

 general parent 
     / \ \ 
    war parent  \ \ 
    /\   \ \ 
war1 war2 other1 other2 

ビルドには、上記のすべてをモジュールとして持つ別々のビルドpomがある場合があります。

HTH

+0

+1プロジェクト間ですべてのWARモジュール*に対して親POMを持つ必要がある場合、あなたは破壊されます。プロファイルではいくつかのトリックが可能ですが、継承ほどのトリックは許されません。 –

0

私は同じ問題に何度も直面していると私は次のように最善の解決策であるという結論になってきた:

cool-master 
|-+ parents 
| |- cool-parent 
| |- cool-parent-web 
| 
|- module1 
|- module2 
|- module3 
|- module-web1 
|- module-web2 

上記の例では、モジュールの3種類があります。

  • 親POM-S(cool-parentcool-parent-web

  • あなたはモジュールの種類ごとに固有の設定を定義することができます
  • cool-parentを拡張する)非ウェブAPS

  • Webアプリケーション(cool-parent-webの延長)の両親で

。たとえば、cool-parentではwebapp以外のものを定義しています。cool-parent-webにはmaven-war-plugin,jetty-maven-pluginなどの空想的なものをすべて入れることができます。cool-parent-webcool-parentを拡張して、依存関係やプラグインの設定を重複しないようにします。

cool-parent-webセクションでは、<pluginManagement/>セクションを定義し、プラグイン用のすべてのものを設定してから、それらのプラグインをWebモジュール間で使用してください。

関連する問題