2016-08-26 24 views
-1

profileが親のpomに定義されており、モジュールごとにプロパティが定義されています。私は値とval2のPROP1とPROP2とwarmodule3を構築するために、それぞれの値のval1.1とval1.2のPROP1とPROP2とwarmodule1とwarmodule1を構築するためにmvn package -P profile1を実行し、mvn package -P profile2プロファイル固有のプロパティがモジュールに渡されていない

<profile> 
    <id>profile1</id> 
    <properties> 
     <prop1>val1.1</prop1> 
     <prop2>val1.2</prop2> 
    </properties> 
    <modules> 
     <module>warmodule1</module> 
     <module>warmodule2</module> 
    </modules> 
</profile> 
<profile> 
    <id>profile2</id> 
    <properties> 
     <prop1>val2.1</prop1> 
     <prop2>val2.2</prop2> 
    </properties> 
    <modules> 
     <module>warmodule3</module> 
    </modules> 
</profile> 

:ここに私のプロファイルセクションは次のようになりますです。 2およびval2.2である。

profile2では動作しますが、profile1では、プロパティは最初のモジュール(warmodule1)にのみ渡され、warmodule1は空の文字列を取得します。

個々のモジュールを個別に実行し、コマンドラインからプロパティを渡すと(例:mvn clean package -Dprop1=val1.1 -Dprop2-val1.2)、親pomのプロファイル定義内にプロパティを設定して親ビルドを実行しても正しく動作しません。

最初のプロファイルだけでなく、プロファイル固有のプロパティを持つ最初のプロファイルで両方のモジュールに影響を与える方法を教えてください。

+0

最初のモジュールには影響しません。シンプルな[mcve]を作れますか?それが第2のモジュールに影響しなかったとあなたはどのように判断しましたか? – Tunaki

+0

2番目のモジュールの一部の文字列置換では、空白の文字列が取得されましたが、 – amphibient

+0

というプロパティ値が設定されているためです。その理由は別のものでした。下の私の答えを見てください。 – amphibient

答えて

0

性質がwarmodule2は、warmodule1とは異なり、親が定義されていなかったので、warmodule2する親pomから渡されていませんでした。

<project ...> 
    <parent> 
     <groupId>mygroupd</groupId> 
     <artifactId>parentArtifactID</artifactId> 
     <version>3.0.0-SNAPSHOT</version> 
    </parent> 

私はポンポンをwarmodule2`sするためにそれを追加すると、パラメータは、成功しました。

補足として、私はこれらのポムを書き始めませんでした。だから、第2のモジュールには親が宣言されていないということは他の人の間違いです。

関連する問題