我有一个Web应用程序的pom文件,一个构建配置文件,它为qa测试做了一些必要的事情(在我的代码中)。
我在svn上有这个代码,这个代码是在Hudson中编译的,它在nexus中部署了工件。
Hudson有两个职位,一个用于qa个人资料(-P qa),另一个用于客户。
我需要的是我在部署阶段更改我的qa配置文件中的工件名称,以便nexus有两个不同的war文件,一个用于qa,另一个用于客户。
我使用(在Google搜索之后)以下内容,看起来它在hudshon中什么也没做!
<profile>
<id>qa</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.5</version>
<configuration>
<classifier>qa</classifier>
</configuration>
</plugin>
</plugins>
</build>
</profile>
任何人的想法?
答案 0 :(得分:13)
您实际上需要在构建正在部署的软件包的插件上设置“分类器”配置选项:maven-(ear | ejb | jar | rar | war | shade)-plugin:
例如,要使用qa分类器构建WAR,您可以执行以下操作:
<profile>
<id>qa</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<classifier>qa</classifier>
</configuration>
</plugin>
</plugins>
</build>
</profile>
此外,您可以设置以下任何一种分类器,而不是设置分类器(大多数默认为project.build.finalName,因此设置该属性会更新其中的许多内容):
最后一点说明:我之前从未意识到这一点,但查看文档,看起来RAR插件不支持“分类”选项。 Shade确实支持分类器概念,但是通过“shadedClassifierName”属性来实现。