使用Jenkins和maven将WAR文件发布到Artifactory

时间:2015-12-21 22:07:09

标签: java maven jenkins artifactory

我正在尝试在Jenkins中配置以下工作流模式:

  1. 构建WAR文件&发布到Artifactory
  2. 将WAR文件从Artifactory部署到DEV&发布到Artifactory 回购开发
  3. 将DEV文件从DEV部署到QA&发布到Artifactory Repo for QA
  4. {QA to Regression等}}
  5. 我似乎错过了一些东西。应用程序的组件(jar文件等)似乎在目标版本/快照目录中很好地部署到Artifactory。然而,尽管Jenkins清楚地识别出工件已成功构建,但最终的WAR工件似乎并未存储在Artifactory中。

    我使用标准目标:全新安装。 我也尝试过(没有改变):clean install repackage

    我安装了Jenkins的标准Artifactory插件。

    我已经检查了第一个Jenkins作业的以下配置来构建项目并将其发布到Artifactory:

    PRE-BUILD& BUILD

    • 弃掉旧版本(保留5)
    • 复制工件的权限
    • git(具有正常工作的必要凭据)
    • 启用Artifactory Release Management(所有模块的一个版本)
    • Build使用POM和" clean"和#34;安装"选项。

    POST-BUILD

    • 归档工件(** / * .war)
    • 将工件部署到Artifactory(发布和快照目录存在并且似乎工作正常,并且在我单击刷新时从Artifactory服务器正确加载)
    • 捕获&发布构建信息
    • 包含环境变量(仅配置默认值)

    还包括可编辑的电子邮件通知构建后步骤。

    我可以使用这些相同的选项,他们将成功地将最终的WAR文件部署到Tomcat实例而不会出现问题。 Jenkins还根据配置保留了WAR文件。但Artifactory似乎存储组件而不是最终的WAR文件。

    我一直在玩配置选项并且空白时间过长。任何和所有的帮助表示赞赏。

    编辑:这是用于"干净安装"的POM文件的snippit。构建war文件时的目标。

    <build>
        <defaultGoal>clean install</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <includes>
                        <include>**/*Tests.java</include>
                        <include>**/*Test.java</include>
                        <include>**/Test*.java</include>
                    </includes>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>${maven.war.plugin.version}</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                        <manifestEntries>
                            <Implementation-Version>${project.version}</Implementation-Version>
                            <Implementation-Revision>${git.revision}</Implementation-Revision>
                            <X-Git-Commits-Count>${git.commitsCount}</X-Git-Commits-Count>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                </configuration>
            </plugin>
        </plugins>
    </build>
    

1 个答案:

答案 0 :(得分:1)

似乎War文件是Maven项目的第二个人工制品。

您能看一看并告诉我们它是否能解决您的问题? Maven deploy secondary file to repository