我试图配置詹金斯以下工作流程模式:使用詹金斯和Maven发布WAR文件artifactory的
- 构建WAR文件&发布到artifactory的
- 部署WAR从Artifactory的文件到DEV &发布到artifactory的 回购为开发
- 部署WAR从DEV到QA文件&发布到Artifactory的回购为QA
- {QA回归等}
我似乎错过了一些东西。应用程序的组件(jar文件等)似乎在目标发行版/快照目录中很好地部署到Artifactory。然而,尽管詹金斯清楚地标识了工件已成功构建,但最终的WAR工件似乎并未存储在Artifactory中。
我正在使用标准目标:干净安装。 我也试过(没有变化):干净的安装重新打包
我有安装Jenkins的标准Artifactory插件。
我已检查了第一詹金斯招聘以下配置来构建项目并将其发布到artifactory的:
PRE-BUILD & BUILD
- 丢弃旧的构建(保持5)
- 复制工件的权限
- git(具有必要的凭据,可以正常工作)
- 启用Artifactory发布管理t(所有模块的一个版本)
- 构建使用POM和“干净”和“安装”选项。
生成后
- 存档的工件(**/*。战争)
- 部署文物artifactory的(发布和快照目录存在,似乎做工精细,从加载Artifactory的服务器正常,当我点击刷新)
- 捕捉&发布构建信息
- 包含环境变量(只配置了默认值)
还包括可编辑的电子邮件通知后制作步骤。
我可以使用这些相同的选项,他们会成功地将最终的WAR文件部署到Tomcat实例中,而不会出现问题。 Jenkins还根据配置保留WAR文件。但Artifactory似乎存储组件而不是最终的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>
你在使用Maven war插件构建战争吗?它是否有单独的战争Maven模块?你看到它的构建信息?你见过[项目示例](https://github.com/JFrogDev/project-examples/tree/master/maven-example)吗? –
Maven集成插件和Maven项目插件都已安装,处于活动状态并且处于最新状态。 应用程序生成良好并生成单个war文件:appName.war。该战争文件被复制到Tomcat实例并正常运行,包括QA测试。但是,当发布到Artifactory时,它不会存储war文件,而是存储war文件的组件,如果我希望它执行代码快照而不是artifact快照,那将会很好。 –
我怀疑这个问题与Maven项目有关,所以我询问有关Maven插件的使用(不是Jenkins插件)。它看起来像Artifactory Jenkins插件无法识别Web模块 –