从nexus部署工件的正确方法

时间:2018-01-01 20:15:16

标签: java spring maven

我正在尝试构建和CI环境,我认为它可行,因为我可以自动将一个jar发布到Nexus。

Git
BitBucket
Jenkins
Nexus OSS

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

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

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

问候!

1 个答案:

答案 0 :(得分:1)

在Jenkins中构建管道:

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

    const_cast

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

几个笔记:

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

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

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