根据配置文件修改部署文件名称。

13

我在一个Web应用程序的pom文件中有一个构建配置文件,它对qa测试中必要的事情(在我的代码中)进行了一些操作。

我将这段代码放在svn上,并在Hudson中编译,它会将生成的文件部署到nexus中。

Hudson有两个job,一个是qa profile(-P qa),另一个是面向客户的。

我需要做的是,在deploy阶段更改qa profile中artifact的名称,以便nexus有两个不同的war文件,一个是qa专用的,一个是面向客户的。

经过谷歌搜索后,我使用了以下代码,但在Hudson中似乎没有任何作用!

    <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>

有什么想法吗?

1个回答

15

实际上,您需要在构建正在部署的包的插件上设置“classifier”配置选项: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,因此设置该属性会更新其中许多内容):

  • 通用
    • project.build.finalName
  • War插件
    • warName
  • Ear|Jar|Rar|Shade插件
    • finalName
  • EJB插件
    • jarName

最后一点说明:我以前从未意识到这一点,但是在查看文档时,发现RAR插件似乎不支持"classification"选项。 Shade通过"shadedClassifierName"属性支持分类器概念。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接