是的,這是可能的。但似乎你首先對how profiles are activated感到困惑。
命令
mvn package -Denvironment=dev
將不激活而無需進一步配置任何輪廓。在你的情況下,它的工作原理,因爲必須有在你的POM配置文件定義,是由系統屬性environment
的存在與dev
值激活。你的配置看起來像:
<profiles>
<profile>
<activation>
<property>
<name>environment</name>
<value>dev</value>
</property>
</activation>
</profile>
</profiles>
這是使配置文件時,你通過系統屬性-Denvironment
激活魔法。考慮到這一點,您可以使用相同的想法激活多個配置文件:聲明多個由存在系統屬性激活的<profile>
元素。
<profiles>
<profile>
<activation>
<property>
<name>myAwesomeProperty1</name>
<value>true</value>
</property>
</activation>
</profile>
<profile>
<activation>
<property>
<name>myAwesomeProperty2</name>
<value>true</value>
</property>
</activation>
</profile>
</profiles>
上面配置將激活兩個輪廓如果myAwesomeProperty1
和myAwesomeProperty2
是系統屬性具有值true
。
不過在這個特殊情況下,你想要的是根據你的環境激活一個版本,所以基於-P
命令行開關而不是系統屬性來激活這些配置文件也許是個好主意。
從Introduction to Build Profiles:
配置文件可以使用-P
CLI選項中明確指定。
這個選項需要一個參數,這是一個逗號分隔的配置文件的ID列表使用。當指定了此選項時,在選項參數中指定的配置文件(一個或多個)將除了其通過它們的活化構型或settings.xml
的<activeProfiles>
部分活化的任何配置文件被激活。
mvn groupId:artifactId:goal -P profile-1,profile-2
有了這個解決方案,您可以調用Maven的多檔編號。也就是說,如果你在你的配置
<profiles>
<profile>
<id>profile-1</id>
<!-- rest of config -->
</profile>
<profile>
<id>profile-2</id>
<!-- rest of config -->
</profile>
</profiles>
以上調用將同時激活profile-1
和profile-2
。
您沒有通過-D指定配置文件,您可以通過-P指定配置文件,是的,您可以有多個配置文件-Pprofile1,profile2。在你的情況下,配置文件可能是通過屬性(-D)激活的,那麼你可以在同一屬性(仍然通過-D),兩個屬性(-Dprop1 -Dprop2)或通過-P明確地激活兩個配置文件 –
Take看看[這](http://stackoverflow.com/questions/18152831/building-multiple-maven-profiles-for-a-single-jenkins-job),它可能會幫助你 – haihui