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のプロファイル定義内にプロパティを設定して親ビルドを実行しても正しく動作しません。
最初のプロファイルだけでなく、プロファイル固有のプロパティを持つ最初のプロファイルで両方のモジュールに影響を与える方法を教えてください。
最初のモジュールには影響しません。シンプルな[mcve]を作れますか?それが第2のモジュールに影響しなかったとあなたはどのように判断しましたか? – Tunaki
2番目のモジュールの一部の文字列置換では、空白の文字列が取得されましたが、 – amphibient
というプロパティ値が設定されているためです。その理由は別のものでした。下の私の答えを見てください。 – amphibient