Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins maven发布插件_Maven_Deployment_Jenkins_Maven Release Plugin_Artifacts - Fatal编程技术网

Jenkins maven发布插件

Jenkins maven发布插件,maven,deployment,jenkins,maven-release-plugin,artifacts,Maven,Deployment,Jenkins,Maven Release Plugin,Artifacts,在Jenkins(最新版本)Maven 3.0.x中,我有一个项目(Java源代码) 我使用的是M2发布插件,它在Jenkins作业(Jenkins作业仪表板的左侧窗格)上提供了一个漂亮的“PerformMaven发布”按钮。幕后/在Jenkins作业的配置中,它调用:发布:准备发布:执行目标 当我点击“PerformMaven Release”时,它成功地完成了它的工作(从1.0.0-SNAPSHOT构建,运行测试&如果成功,对pom.xml进行更改,并将版本设置为1.0.0作为版本ID,执行

在Jenkins(最新版本)Maven 3.0.x中,我有一个项目(Java源代码)

我使用的是M2发布插件,它在Jenkins作业(Jenkins作业仪表板的左侧窗格)上提供了一个漂亮的“PerformMaven发布”按钮。幕后/在Jenkins作业的配置中,它调用:发布:准备发布:执行目标

当我点击“PerformMaven Release”时,它成功地完成了它的工作(从1.0.0-SNAPSHOT构建,运行测试&如果成功,对pom.xml进行更改,并将版本设置为1.0.0作为版本ID,执行更多的验证并对pom.xml进行更改(Maven Release插件检查的内容等),在版本控制中提交此更改,在版本控制中将1.0.0标记为“标记”,再次将pom.xml更改为使用1.0.1-SNAPSHOT并提交,然后从我们刚刚创建的标记为1.0.0的发布版本标记中签出,在/target/checkout文件夹下签出,构建relase 1.0.0工件(jar/war/pom等)最后将其部署到存储库中,如您在…部分中所述

  <distributionManagement>
   <repository>
     <id>dev-artifactory</id>
         <url>http://1.2.3.15:8081/artifactory/libs-release-local/</url>
   </repository>
   <snapshotRepository>
     <id>dev-artifactory</id>
         <url>http://1.2.3.15:8081/artifactory/libs-snapshot-local/</url>
   </snapshotRepository>
  </distributionManagement>

开发人工制品厂
http://1.2.3.15:8081/artifactory/libs-本地发布/
开发人工制品厂
http://1.2.3.15:8081/artifactory/libs-快照本地/
我需要的是:

1) 一旦上面的流程生成了x.x.x发布工件并运行了一些集成测试,我如何使“performmaven Release”流程调用服务器部署。这应该在maven发布插件过程将工件部署到二进制存储库(Artifactory/Nexus)之前发生。i、 e.如果您将工件放在发布库中,那么非单元测试也会成功(不是工件放在Artifactory的libs发布本地库中,集成测试还没有启动)

或者我是否需要更改…使用libs快照本地(Artifactory repository),然后运行IT测试,最后如果这些测试成功,将1.0.0版本的工件从libs stage本地存储库移动到libs release本地存储库


我知道我可以在Maven的用户的.M2/Stutux.xml(用户全局)或M2JHOME/.M2/Stutux.xml(Global)中设置Maven发布插件相关的设置,但在这一点上,这不是问题。

也许你应该考虑一下这里的这篇文章:


有了它,您可以自定义您的发布工作流,以便在M2发布完成后添加特定步骤。

我们为每个环境(开发、qa、prod)部署了Jenkins。我们使用升级版本、复制工件和参数化触发器插件在所有环境中移动相同的工件。要了解它们是如何协同工作的,请阅读本文()


按照发布过程,使用Maven-Promote-plugin()而不是Maven-release-plugin来发布已经构建和测试的工件(关于Maven-release-plugin的缺点有很多文章)。您仍然可以使用Jenkins M2 Release插件,但在其配置、发布目标和选项中,请调用
mvn Release:clean promote:prepare Release:prepare
。有关更多详细信息:

您是否有任何它?它们如何集成到您的构建中?通过配置文件?通过maven failsafe插件还是如何?我们有一个it测试,我们会在之后运行r在持续集成环境中在VM上部署/启动tomcat(我们动态创建该VM,将应用程序工件部署到VM上,运行测试,然后销毁VM)。如果全部通过,则工件应转到“libs release local”与其先访问此repo,然后运行测试,不如先访问此repo。第一个链接已损坏,下面是它的存档版本: