2016-04-18 20 views
1

私はrpm-maven-pluginを使用して、私のJavaプロジェクトをインストールするRPMを作成しています。私はCentOS 5とCentOS 7の両方のRPMをビルドする必要があります。私は既にプロファイルを使用して、2つのRPM依存関係の名前を含むプロパティを設定してから、RPMプラグインのそれらのプロパティを参照します。Mavenプロファイルでプラグイン設定を複製する必要がありますか?

RPMがcent5とcent7のプロファイルに基づいてどのファイルを置き換えるかを変更する必要があります(セント5はまだinitスクリプトを使用していますが、centd 7はsystemdのユニットファイルになりました)。私はプロパティを設定することでそれを行う簡単な方法を考えることはできません、私はそれぞれに異なるファイルマッピングを含める必要があります。変更を適用するには、2つのプロファイルで自分の(長い)RPMプラグイン設定を複製する必要がありますか?プラグインの設定が長く、重複が必然的に将来の変更を行う開発者や他の人が欠けてしまうため、危険だと感じています。プロファイルを使用してプラグイン設定に追加する方法はありますか?

mavenのプロファイル間で複雑なプラグイン設定の小さな変更を管理するための最良の方法は何ですか?使用Mavenのaggregation (with sub-modules)

+0

Mavenの[集約(サブモジュールあり)](https://maven.apache.org/pom.html#Inheritance_v)**と** [継承(親POMあり)](http: 。たとえば、[Maven and Profiles:...](http://stackoverflow.com/a/33291639/1744774)を参照してください。 –

+1

これらのリンクを読んだ後、私は、複数のPOMに分割された戦略を使用するのではなく、すべてのプロファイルを使用しようとするという罠に陥っていると私は確信しています。私は、継承の仕組みが私に必要なものを私に与えるだろうと思う。ターゲットOS固有の2つのPOMに継承された共通のビルドステップ。私はRPMプラグインを両者にわずかに変更して定義することになりますが、それは必然的に多くの違いが浮かび上がったときにスケーラブルなソリューションを購入することは大丈夫です。これを回答として投稿した場合、私はそれを受け入れます。 – tdimmig

答えて

0

継承と集約を制御するための素敵なダイナミックはシングル、高レベルのPOMを通じて構築します作成します。親と集約者の両方のプロジェクトがよく見られます。

inheritance (with a parent POM)

親プロジェクトは、その子にその値を渡すものです。マルチモジュールプロジェクトは、単に他のサブプロジェクトまたはモジュールのグループを管理します。

参考情報answer to Maven and Profiles: ...も参照してください。

関連する問題