Maven POM.xmlに次のXMLがあります。
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>default</name>
<value>!disabled</value>
</property>
</activation>
<modules>
<module>m1</module>
<module>m2</module>
<module>m3</module>
</modules>
</profile>
<profile>
<id>x</id>
<modules>
<module>m1</module>
</modules>
</profile>
</profiles>
私が達成しようとしているのはこれです:
mvn install
を実行すると、m1、m2、およびm3プロジェクトをビルドします。
mvn install -Px
を実行すると、only build m1になります。
私の現在の問題は、上記のコードで、オプション2がすべてのm1、m2、m3をビルドすることです。
解決策を見つけて、最初に「x」プロファイルと「デフォルト」を定義すると、正常に機能します(非常識なMaven !!)。最終結果は次のとおりです。
<profiles>
<!-- DO NOT CHANGE THE *ORDER* IN WHICH THESE PROFILES ARE DEFINED! -->
<profile>
<id>x</id>
<modules>
<module>m1</module>
</modules>
</profile>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>m1</module>
<module>m2</module>
<module>m3</module>
</modules>
</profile>
</profiles>
次のように、コマンドラインからrunByDefault
がtrueに設定されているMavenプロファイルを無効にできます。
mvn install -P !default
注、これにはMavenバージョン2.0.10が必要です。