【问题标题】:Nexus Artifacts UploadingNexus 工件上传
【发布时间】:2019-03-30 18:50:54
【问题描述】:

如何使用 jenkins shell 将工件上传到 nexus 并自动生成版本?我正在使用这个脚本,我想在工件上传时自动生成版本。

 mvn deploy:deploy-file \
          -DgroupId= \
          -DartifactId= \
          -Dversion=  \
          -DgeneratePom= \
          -Dpackaging= \
          -DrepositoryId= \
          -Durl= \
          -Dfile= 

【问题讨论】:

  • 你的目标版本应该是什么样的?它可以基于 $BUILD_NUMBER 变量吗?
  • 目标版本是 0.0.1-SNAPSHOT.jar。我可以从 pom.xml 中获取它吗?我对这些东西很陌生。 0.0.1-SNAPSHOT
  • 是的,您可以使用 maven 帮助插件从 pom.xml 中获取它。在部署之前在jenkins中运行它执行shell,它将返回版本,并在部署中使用它mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version
  • mvn --quite org.apache.maven.plugins:maven-help-plugin:3.0.0:evaluate -Dexpression=project.version
  • mvn help:evaluate -Dexpression=project.version | grep -e '^[^\[]' 给定的脚本工作正常,这也有效。感谢您的支持

标签: git maven jenkins gitlab nexus


【解决方案1】:

您可以在 Jenkins 管道中使用 ${env.BUILD_NUMBER} 变量来指定工件版本。

要做到这一点,有几个选项:

  1. 如果您想在mvn deploy 期间将工件发布到 Nexus,那么您可以在pom.xml 文件中使用${revision} 参数。 为此,您需要将此变量放入<version> 标记中。例如,<version>1.0-${revision}</version> 然后将其提供给 Jenkins 管道中的 maven 命令:mvn deploy -Drevision=${env.BUILD_NUMBER}。 详情见this回复。
  2. 您还可以使用 Nexus Jenkins 插件 将工件上传到 nexus 并使用 ${env.BUILD_NUMBER} 变量指定工件版本。详情请见this

【讨论】:

    猜你喜欢
    • 2015-12-29
    • 2017-01-29
    • 2017-06-06
    • 2011-05-01
    • 2010-11-27
    • 2020-09-20
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    相关资源
    最近更新 更多