【问题标题】:Jenkins: deploying war files from artifactoryJenkins:从工件部署战争文件
【发布时间】:2014-05-17 03:45:58
【问题描述】:

我们正在使用 Jenkins 构建 (ma​​ven) 并将工件(JAR 和 *WAR*s)部署到内部工件服务器(快照和发布)。

对于部署,目前,我们获得了打包 war 文件(来自发布 scm 标记)并部署到不同环境/服务器的 Jenkins 作业。我们想跳过打包阶段,因为似乎没有必要为发布的版本一次又一次地打包它,因为即使尝试了 1000 次也无法获得不同的 war 文件副本。

我们正在 Jenkins 中寻找一种方法来从 Artifactory 获取工件(战争)并将其部署到容器中。我相信其他人也会遇到这种情况,但我无法找到任何关于此的在线材料。

是否有任何 Jenkins 插件可以从 Artifactory(基于版本)获取 war 文件并将其部署到远程容器?

如果这不是正确的做法,那么对于任何其他方法有什么建议?

谢谢

【问题讨论】:

标签: maven deployment jenkins continuous-integration jenkins-plugins


【解决方案1】:

我不知道有一个插件需要一个版本号并部署它,但你可以构建一个 Jenkins 作业来将最后一个成功的版本部署到以前的环境中(例如从 DEV-->QA 复制。)

为此,您将使用复制工件插件。

下面是这种设置的简单介绍:

http://www.lordofthejars.com/2012/09/deploying-jee-artifacts-with-jenkins.html

【讨论】:

    【解决方案2】:

    存储在 Artifactory 中的每个工件都有一个包含版本号的唯一 URL。它将采用格式

    http://artifactory-server/repository-name/path-to-artifact/version/filename
    

    例如

    http://artifactory/apps-releases-local/com/yourorg/yourapp/1.5.67/webapp.war
    

    (根据您的打包方式,WAR 文件名也可能包含版本号)。

    因此您的部署作业可以构建 Artifactory URL 并下载文件。根据您在 Artifactory 中设置安全性的方式,您可能需要对请求进行身份验证。

    【讨论】:

    • 是的,我明白了。我的问题是如何在 jenkins 中进行部署工作,从 URL 下载战争文件?
    • 你没有说你正在使用什么网络容器; Maven 有一个内置的 Tomcat 部署,请参阅mkyong.com/maven/how-to-deploy-maven-based-war-file-to-tomcat 否则您可以在 Jenkins 中编写一个 shell 构建步骤来执行部署步骤。
    • 我正在使用 Tomcat。 maven-tomcat-plugin 是否允许部署存储在工件上的战争?编写一个 shell 脚本来下载战争和部署是有道理的,但我只是想知道这是否已经在一些我不知道的 jenkins 或 maven 插件中完成。
    • 我对 Maven 插件不是很熟悉,但我认为它会获取本地生成的 WAR 文件并从构建从站部署它。如果您愿意,您仍然可以在单独的步骤中将 WAR 发布到 Artifactory,只是不需要从 Artifactory 部署它。
    猜你喜欢
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2021-01-24
    • 2012-11-27
    相关资源
    最近更新 更多