2017-01-26 20 views
0

マルチモジュールPOMプロジェクトを構築しようとしています。Maven:1つのビルドで異なるモジュールに異なるグローバルプロファイルを使用する

私のsettings.xmlには、さまざまなサーバーに接続するための詳細を含む多数のプロファイルがあります。これは、モジュールの永続ユニットによって使用されます。

私が必要とするのは、同じビルド内で2つの異なるプロファイル(1つはモジュールに、もう1つは残りのモジュール)です。一度にすべてのプロファイルを構築するわけではありません。

ベストプラクティスのシナリオは、既定値として1つのプロファイルを設定することができ、それ以外のプロファイルを必要なモジュールに割り当てることができます。

重要なのは、私は、端末上で異なるプロファイルを使ってmvnを使用することで必要な機能を得ることができましたが、NetbeansとJenkinsですべてを構築できるようにpomを通じてこれを行うことができます。

これは可能ですか?

+0

Jenkinsで通常できるコマンドラインでできることは、ビルド設定で適切なコマンドを与えるだけです。 – Redlab

+0

+1コマンドライン引数を保持するために+1しますが、ビルドに使用される 'settings.xml'に' activeProfile'のリストを指定することもできます – Aaron

+0

まだNetbeansまたは他のIDEがあります。可能な限り携帯可能であること。まもなく、私は他の人と共有しなければならないでしょう。私は彼らがIDEを特別な設定なしで構築できるようにしたいと思います。 – Arch

答えて

0

当初私はこのようなものかもしれないと思っていました。

のsettings.xmlプロファイルの

<activation> 
    <property> 
     <name>activator.one</name> 
     <value>true</value> 
    </property> 
    </activation> 
モジュールののpom.xmlで

<properties> 
     <activator.one>true</activator.one> 
    </properties> 

多分これは、プロパティがtrueに設定されている場合にのみ活性化剤とのプロファイルがアクティブになります。これは、特定のモジュールのポームの中だけにあります。

しかしhttp://maven.40175.n5.nabble.com/Activating-a-profile-in-settings-xml-based-on-a-property-set-in-pom-xml-td512562.html

プロファイルは、ビルド中に活性化することはできません!

したがって

は、名前が全く異なるように、あなたのモジュールで異なるプロファイルに名前を付けるために良いとは限りません。それらをすべて有効にします。 Like connections_mysqldb_module_a、connections_hsqldb_module_b プロファイルがたくさんありますが、名前がモジュール間で重複していないことを確認したら、モジュールごとに選択して、すべてを一度に構築できます。

+0

私はあなたが提案したものを試しましたが、うまくいきませんでした。私もデフォルトのプロファイルのを無効にし、何も変更されませんでした。 – Arch

+0

ビルド中にプロファイルをアクティブ化できないようです – Redlab

関連する問題