繁体   English   中英

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

[英]Using Jenkins and maven to publish a WAR file to Artifactory

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

  1. 构建WAR文件并发布到Artifactory
  2. 将WAR文件从Artifactory部署到DEV并发布到Artifactory Repo for Dev
  3. 将WAR文件从DEV部署到QA并发布到Artifactory Repo以进行QA
  4. {QA to Regression等}

我似乎错过了一些东西。 应用程序的组件(jar文件等)似乎在目标版本/快照目录中很好地部署到Artifactory。 但是,尽管Jenkins清楚地识别出工件已成功构建,但最终的WAR工件似乎并未存储在Artifactory中。

我正在使用标准目标:干净安装。 我也尝试过(没有变化):干净安装重新包装

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

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

预建和建设

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

POST-BUILD

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

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

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

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

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

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

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

你能看一看并告诉我们它是否能解决你的问题吗? Maven将辅助文件部署到存储库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM