Maven 发布插件:指定新的开发版本不影响 pom 的自定义属性

Posted

技术标签:

【中文标题】Maven 发布插件:指定新的开发版本不影响 pom 的自定义属性【英文标题】:Maven release plugin: Specifying new development version do not affects on pom's custom property 【发布时间】:2012-10-11 12:48:35 【问题描述】:

我有以下不太结构化的 pom:

...
<groupId>xxx</groupId>
<artifactId>yyy</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>pom</packaging>

...
<properties>
    <xxx.yyy.version>0.1-SNAPSHOT</xxx.yyy.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>xxx</groupId>
            <artifactId>aaa</artifactId>
            <version>$xxx.yyy.version</version>
        </dependency>

        ...

    </dependencies>
</dependencyManagement>

mvn release:prepare 成功将 pom 的版本和 xxx.yyy.version 属性的值更改为 cmd 发布版本中指定的值(例如 0.1) - 很好,可以。之后,pugin 设置项目的新开发版本(例如 0.2-SNAPSHOT) - 这就是我遇到问题的地方:xxx.yyy.version 属性的值仍然为 0.1。为什么 xxx.yyy.version 属性没有更改为指定的新开发版本 0.2-SNAPSHOT?如何解决?提前谢谢

【问题讨论】:

我很难理解你的问题。您是说 maven-release-plugin 正确地将您的自定义属性 (xxx.yyy.version) 从 0.1-SNAPSHOT 更新到 0.1,但在完成发布后未能将其更新到 0.2-SNAPSHOT? 是的,完全正确。这是我的问题 对我来说只是改变第三个数字(比如从 0.0.1-SNAPSHOT 到 0.0.2-SNAPSHOT)。我想知道是否有办法设置自定义下一个版本。 【参考方案1】:

严肃的回答:考虑改用Maven Version Numbers Plugin。我从来没有听说过关于发布插件的好消息(至少,我听说过很多像你这样的故事)。

【讨论】:

在这个阶段对我来说听起来像是明智的建议 - 我目前正在与严重无证的 maven-release-plugin 作斗争以尝试做同样的事情。否决票似乎不公平......【参考方案2】:

确保在 maven-release-plugin 配置中 updateWorkingCopyVersions 参数未设置为 false(默认为 true)。 当此参数设置为 false 时,版本不会增加

【讨论】:

以上是关于Maven 发布插件:指定新的开发版本不影响 pom 的自定义属性的主要内容,如果未能解决你的问题,请参考以下文章

未指定 Maven 插件版本

我应该使用啥版本的 Java 来开发我的 MOJO Maven 插件?

maven 发布:准备版本字符错误

未指定版本的 Maven 兄弟模块依赖

maven配置tomcat插件,及在maven打包时文件名不包含版本号

Maven 发布使用部分