java - Jenkins build 管道项目

标签 java maven jenkins jenkins-pipeline

我有一个要求,

  1. 创建构建作业
  2. 部署到 Artifactory
  3. 从 Artifact 下载 Artifact 并部署到测试服务器

我已在构建管道中配置了所有 3 个作业。 而且所有人都拥有共享的构建路径。

这基本上是一个 Java 作业,我已经创建了构建作业并且它工作正常。我已使用下游作业来触发部署到 Artifact 作业。它使用 Maven 构建。

在第二个作业中,需要手动触发(我已经这样配置),运行良好,并且它正在部署到我配置的相应存储库中。我使用了通用 Artifact 集成插件并使用已发布的 Artifact 推送到 Artifact 存储库

现在第三个工作,如何从artifactory下载 Artifact ? 如果从第二项工作开始,我们可以将 Artifact URL 存储到文件中并将其作为参数化构建读取,我认为它会起作用。

但我没有得到任何线索来获取 Artifact URL。

请帮忙!

最佳答案

我能够通过以下方法实现这一目标。


1. 创建一个构建作业 --> 这将从存储库下载代码并执行 Maven 构建。 Pom.xml 经过调整,我得到一个 tar.gz 文件作为输出。内部版本号和分支名称的信息保存在同一工作区的文件中。


2. 创建 Artifactory 上传作业 --> 我使用 mvn deploy:deploy-file 命令将 Artifact 部署到 Artifactory 中的特定远程存储库。它有一个版本参数,我在其中传递内部版本号,并且它有 groupID 和 artifactID。所以maven部署文件一旦上传文件,就会上传artifactory中的明确路径。由于我已经掌握了所有详细信息, 我构建了 Artifactory URL,并将其保存在我获取内部版本号和分支名称的同一文件中。

3. 创建到特定服务器的部署作业 --> 我创建了一个部署脚本并将该脚本保留在服务器中,该脚本以 URL 作为参数。从工作区上的文件中,我能够检索 URL 并通过 ssh 连接到服务器。加载 bash 配置文件并将 URL 传递给部署脚本。之后它下载了 Artifact 并部署到服务器。

创建这些作业后,我将构建作业配置为采用构建后手动项目,并将 Artifactory 上传作为作业名称。对于 Artifactory 作业,我将部署作为构建后手动项目作业。

通过这种方式,我创建了一个构建管道 View ,其中所有这些项目都是上游/下游项目。

关于java - Jenkins build 管道项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46962247/

相关文章:

android - Gradle 中的多个 Maven 存储库

运行maven package命令时java spring boot jar文件错误

java - maven 不会在目标中替换属性文件中的占位符

linux - Jenkins:Windows slave,linux master,如何正确配置(ant)构建工具?

Angular Build EPERM : operation not permitted, 复制文件

java - Eclipse 可以自动将所有标记为 src 的文件夹添加到构建路径吗?

java - 树莓派 "Kiosk"模式

java - 如何控制 JVM 生成的进程的内存使用情况

java - RxJava,如果存在则获取第一项

Jenkins 中的 Linux 用户并安装到远程服务器