部署由另一个作业构建的Jenkins工件

时间:2017-11-14 22:48:07

标签: jenkins continuous-deployment

我在Jenkins上安装了Deploy Plugin,以便自动将Maven内置war个软件包部署到Tomcat 7。问题是,只有在使用部署插件的同一作业中创建插件时,我才能使用插件部署到远程Tomcat服务器。换句话说,我无法设置一个独立的工作来部署由不同工作制作的工件。

例如,我有一个名为 pack.foo 的工作。它使用 / var / lib / project / module 中的源代码创建 module.war 并将其放在 / var / lib / project / module / target中。但是,由于Maven版本设置,在pack.foo的工件页面上发布的工件类似于 module-2.0.0-SNAPSHOT.war

我能够部署module.war的唯一方法是,如果我向pack.foo添加Post-build Action并指定** / module.war为远程Tomcat管理器URL(前提是我有经理的凭据)在詹金斯配置)。然后作业的控制台输出记录/var/lib/project/module/target/module.war已部署到该URL:

Deploying /var/lib/project/module/target/module.war to container Tomcat 7.x Remote with context 
  [/var/lib/project/module/target/module.war] is not deployed. Doing a fresh deployment.
  Deploying [/var/lib/project/module/target/module.war]

如何使用此或其他插件来部署在单独的Jenkins作业中生成的WAR工件?我想为工件创建和部署分别创建工作。该插件没有找到** / module-2.0.0-SNAPSHOT.war甚至** / module.war由另一个作业构建,即使磁盘上肯定有一个匹配该模式的文件。

1 个答案:

答案 0 :(得分:1)

请参阅您关联的Deploy Plugin's page上的段落:

  

如何回滚或重新部署以前的版本

     

可能有几种方法可以实现这一目标,但这里有一个建议的方法:

     
      
  1. 安装Copy Artifact Plugin
  2.   
  3. 创建一个仅在需要时手动触发的新作业
  4.   
  5. 使用类型为&#34的构建参数;为复制工件构建选择器"以及使用"由构建参数"指定的复制工件构建步骤来配置此作业;选择构建。
  6.   
  7. 添加构建后操作以部署从其他作业复制的工件
  8.         

    现在,当您触发此作业时,您可以输入内部版本号(或使用任何其他可用的选择器)来选择要重新部署的内部版本。感谢Helge Taubert这个想法。