首页 文章

maven发布插件 - 操纵项目发布版本

提问于
浏览
0

我正在尝试在Jenkins中配置maven发布版本,其中包含自定义版本,其中包含发布版本的分支 .

它看起来像这样:

release:prepare -DreleaseVersion = $ - $ - 释放:执行

一切正常,除了基于pom计算的 'project.version' 占位符包含 '-SNAPSHOT' 后缀 .

是否有其他占位符,我可以使用它来获得它没有 '-SNAPSHOT' ?我知道默认情况下,maven发布插件会设置正确的版本 - 只是我想操纵该值 .

2 回答

  • 0

    还有其他占位符,我可以使用它来获得它没有'-SNAPSHOT'?

    不幸的是,我相信你的问题的答案是“不,没有内置的变量可以满足你的需求” . 但是,您可以尝试创建属性,然后在项目的版本标记内使用该属性 .

    我无法测试这个,因为我没有设置适当的环境,而且已经很晚了,所以我现在没有时间设置它 . 我将概述我的想法,也许它会帮助你:

    您可以在POM中执行以下操作:

    <version>${artifactReleaseVersion}-SNAPSHOT</version>
    <properties>
        <artifactReleaseVersion>0.0.1</artifactReleaseVersion>
    </properties>
    

    然后使用该属性运行您的目标:

    release:prepare -DreleaseVersion=${artifactReleaseVersion}-${GIT_LOCAL_BRANCH}-Release release:perform
    
  • 0

    请参阅官方文件https://maven.apache.org/maven-ci-friendly.html .

    自3.5以来,maven支持3个属性: ${revision}${sha1}${changelist} . 所以你可以使用类似的东西

    <version>${revision}${changelist}</version>
      ...
    <properties>
      <revision>1.3.1</revision>
      <changelist>-SNAPSHOT</changelist>
    </properties>
    

    并称之为

    release:prepare -DreleaseVersion=${revision}-${GIT_LOCAL_BRANCH}-Release
    

    But maven-release-plugin与CI友好版本不能很好地协同工作 . 阅读:它可能会覆盖版本标记中的占位符 . 所以最后你可能只是通过bash命令操纵-SNAPSHOT字符串 .

相关问题