【问题标题】:Deploying Jenkins Artifact Built by Another Job部署由另一个工作构建的 Jenkins 工件
【发布时间】:2017-11-14 22:48:06
【问题描述】:

我在我的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 的唯一方法是,如果我将 Post-build Action 添加到 pack.foo 并指定 **/module.war 作为远程 Tomcat 管理器 URL(前提是我在 Jenkins 中有管理器的凭据)配置)。然后作业的控制台输出记录 /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 由另一个作业构建,即使磁盘上肯定有一个与该模式匹配的文件。

【问题讨论】:

    标签: jenkins continuous-deployment


    【解决方案1】:

    查看您链接的Deploy Plugin's page 上的段落:

    如何回滚或重新部署以前的构建

    可能有几种方法可以做到这一点,但这里有一种建议的方法:

    1. 安装Copy Artifact Plugin
    2. 创建仅在需要时手动触发的新作业
    3. 使用“用于复制工件的构建选择器”类型的构建参数配置此作业,并使用“由构建参数指定”选择构建的复制工件构建步骤。
    4. 添加构建后操作以部署从其他作业复制的工件

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多