gpt4 book ai didi

java - 从 Nexus 部署 Artifact 的正确方法

转载 作者:行者123 更新时间:2023-12-02 11:48:22 24 4
gpt4 key购买 nike

我正在尝试构建 CI 环境,我认为它有效,因为我可以自动将 jar 发布到 Nexus 中。

Git
BitBucket
Jenkins
Nexus OSS

我正在查找有关 maven 项目发布到 nexus 时自动部署的信息,但我不确定我最初的想法。

我最初的想法是从 Nexus3 下载最新的 Artifact 并使用 mvn spring-boot:run 但我不确定我的决定。

我阅读了有关 Puppet 的信息,但我不确定此选项,有人可以帮助我了解此过程吗?或者在 StackOVERflow 中向我发送有关此问题的另一个链接。

问候!

最佳答案

在 Jenkins 中构建管道:

  • 第一项工作构建 Artifact 并将其上传到存储(在您的情况下是 Nexus)。它必须确定它上传的版本 - 最简单的方法是由作业本身设置版本,然后上传已知版本(请参阅底部的示例脚本)。
  • 然后将已知版本传递给下游作业(例如部署到环境)。您需要告诉 Jenkins 您刚刚部署了哪个版本 - 可以将其写入键值文件,然后使用 EnvInject 插件之类的东西将其读取为环境变量。
  • 要从 Nexus 下载 Artifact ,请使用 wget/curl:

    http://nexus.domain/nexus/service/local/artifact/maven/redirect?r={repository}&g={groupId}&a={artifactId}&v={version}&p={type }

  • Jenkins 有多个用于构建管道的插件,但您可以从简单的内置作业调用其他作业的可能性开始。

一些注释:

  • 不要使用 Maven 进行部署。 Maven是一个构建工具,它不适合部署。编写 bash 脚本,并可能使用 Docker 进行部署自动化。
  • 不要使用最新/快照/发布版本 - 您需要进行确定性部署(如果使用相同的参数重复,则会部署相同的 Artifact )。

设置类似快照版本的示例脚本(因此可以将 Artifact 上传到快照 Maven 存储库):

VERSION=`mvn help:evaluate -Dexpression=project.version | grep -v "^\["| grep -v Download`
VERSION=${VERSION/%-SNAPSHOT/} #get rid of -SNAPSHOT if it's there
VERSION="$VERSION-"`date +"%Y%m%d.%H%M%S"`"-$BUILD_NUMBER"
mvn versions:set -DnewVersion=$VERSION

关于java - 从 Nexus 部署 Artifact 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48052913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com