如何在一个 maven 命令中调用两个不同的配置文件?

我有两个配置文件的不同环境中的 pom.xml,我必须运行 mvn -PTest1 installmvn -PTest2 install命令,以获得这些配置文件的使用。我们能否将两个独立的 maven 命令集成到一个命令中(如 mvn clean install) ?

这是我的 Pom 条目

<profiles>
<profile>
<id>Test1</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.5</jdk>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
<property>
<name>sparrow-type</name>
<value>African</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>
com.endeca
</groupId>
<artifactId>
endeca_navigation_Test1
</artifactId>
<version>
6.1
</version>
<!--<version>stable</version> -->
<scope>
compile
</scope>
</dependency>
</profile>


<profile>
<id>Test2</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.5</jdk>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
<property>
<name>sparrow-type</name>
<value>African</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>
com.endeca
</groupId>
<artifactId>
endeca_navigation_Test2
</artifactId>
<version>
6.1
</version>
<!--<version>stable</version> -->
<scope>
compile
</scope>
</dependency>
</dependencies>
</profile>
</profiles>

使用单一命令管理 Hudson 作业将有所帮助

69138 次浏览

基于 文件和讨论 给你,尝试用逗号分隔概要文件名:

mvn install -P Test1,Test2

对我来说,Mifeet 的答案不起作用。我得到了“未知生命周期阶段 Test2”。对我来说,这个答案起作用了:

mvn install -PTest1 -PTest2

Mifeet 的回答 是正确的,但是在 Windows PowerShell 中你应该引用参数,否则你会得到“未知生命周期阶段”错误。

mvn install -P 'Test1,Test2'

根据 maven help 命令

 -P,--activate-profiles <arg>   Comma-delimited list of profiles to activate

因此,您可以运行 mvn package -Pp1,p2以使用 p1和 p2运行配置文件 id