11
我有兩個Maven配置文件profile-A和profile-B。只有當「A」未被激活時才應激活「B」。 所以,如果我會打電話Maven:只有激活配置文件A,如果配置文件B未被激活?
mvn install
輪廓-B執行(但不是個人資料-A)。 但是,如果我會打電話
mvn install -Pprofile-A
然後只執行輪廓-A(但不是個人資料-B)。
任何提示我需要如何寫我的pom.xml來實現這一點?
我已經嘗試過這一點,但它不工作:
<profiles>
<profile>
<id>profile-A</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
...
</profile>
<profile>
<id>profile-B</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>!profile-A</name>
</property>
...
</activation>
...
</profile>
</profiles>
只是想澄清一個難倒我約15分鐘的觀點。從上面關於'activeByDefault'的鏈接的最新版本(強調我的):「除非在同一個POM中的另一個配置文件**被使用前面描述的方法之一激活,否則該配置文件將自動爲所有構建激活。」在我的情況下,我已經將父級配置文件B添加到父級POM中,並將配置文件A添加到多模塊版本中的葉子POM中。在此配置中,當通過命令行激活配置文件A時,配置文件B未被禁用。將配置文件A和B移動到相同的POM中會產生所需的行爲。 –