Java 使用Jenkins和maven将WAR文件发布到Artifactory
我正在尝试在Jenkins中配置以下工作流模式:Java 使用Jenkins和maven将WAR文件发布到Artifactory,java,maven,jenkins,artifactory,Java,Maven,Jenkins,Artifactory,我正在尝试在Jenkins中配置以下工作流模式: 构建WAR文件并发布到Artifactory 将WAR文件从Artifactory部署到DEV&发布到Artifactory 发展商回购协议 将WAR文件从开发人员部署到QA,并发布到用于QA的Artifactory Repo {QA到回归等等} 我好像错过了什么。应用程序的组件(jar文件等)似乎可以部署到目标版本/快照目录中的Artifactory。然而,最终的战争神器似乎并没有存储在Artifactory中,尽管Jenkins清楚地识别出神
- 放弃旧版本(保留5个)
- 复制工件的权限
- git(具有正常工作所需的凭证)
- 启用Artifactory发布管理(一个版本适用于所有模块)
- Build使用POM和“clean”和“install”选项
- 归档工件(**/*.war)
- 将工件部署到Artifactory(发布目录和快照目录存在并且似乎工作正常,在单击refresh时从Artifactory服务器正确加载)
- 捕获和发布生成信息
- 包括环境变量(仅配置默认值)
<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>
清洁安装
org.apache.maven.plugins
maven surefire插件
2.18.1
**/*Tests.java
**/*Test.java
**/Test*.java
真的
org.apache.maven.plugins
maven编译器插件
${maven.compiler.plugin.version}
${java.version}
${java.version}
org.apache.maven.plugins
maven战争插件
${maven.war.plugin.version}
假的
假的
${project.version}
${git.revision}
${git.commitCount}
org.apache.maven.plugins
maven发布插件
真的
War文件似乎是Maven项目的第二个人工制品
你能看看这里,告诉我们它是否解决了你的问题吗?
您是否使用Maven war插件构建war?它是否有一个单独的Maven模块用于战争?你在构建信息中看到了吗?您看到了吗?Maven集成插件和Maven项目插件都已安装、处于活动状态并且是最新的。该应用程序构建良好,并生成一个war文件:appName.war。该war文件被复制到Tomcat实例中,并在包括QA测试在内的情况下正常工作。然而,当发布到Artifactory时,它不存储war文件,而是存储war文件的组件,如果我想让它做代码快照而不是工件快照,那就好了。我怀疑问题与Maven项目有关,所以我问的是正在使用的Maven插件(不是Jenkins插件)。看起来Artifactory Jenkins插件无法识别web模块maven war插件正在使用。我试图从POM发布到部分,但评论太长。这就是它的名称:`org.apache.maven.plugins maven war plugin`尝试将此作为解决方案,但没有解决我的问题。