【问题标题】:Update Maven Dependency Properties With Pretty Snapshot Version使用漂亮的快照版本更新 Maven 依赖属性
【发布时间】:2023-12-11 22:19:01
【问题描述】:

我目前有一个包含多个项目的 Maven 发布管道。在mvn release:perform 之后,我无法找到将依赖属性更新为最新的“漂亮”快照版本的方法。

为了澄清,这里是发布管道:

Release Project A --> Release Project B --> Release Project C...

发布前的项目B pom.xml(伪pom):

<version>1.2.1-SNAPSHOT</version>
<properties>
    <project-a.version>1.4.1-SNAPSHOT</project-a.version>
</properties>

在发布过程中,&lt;project-a.version&gt; 会自动更新到最新的发布版本,在本例中为 1.4.1

发布后,项目B的伪pom是这样的:

<version>1.2.2-SNAPSHOT</version>
<properties>
    <project-a.version>1.4.1</project-a.version>
<properties>

出于开发和测试的原因,我希望在执行发布后,根据最新的快照版本将&lt;project-a.version&gt; 设置为1.4.2-SNAPSHOT

使用mvn versions:update-properties -DallowSnapshots=true 可以做到这一点,但它给我留下了一个非常丑陋的快照版本号,并且让我被绑定到一个特定的快照工件:

<project-a.version>3b2a0d174a0658de1d3bfc777c248f83a8286e61-SNAPSHOT</project-a.version>

有没有办法获得通用的“漂亮”版本号?我假设可能不是,因为“漂亮”的快照版本号并不指代一个特定的工件,这在技术上不是一个好主意。

【问题讨论】:

    标签: maven properties versioning pom.xml release


    【解决方案1】:

    看看maven update pom property。您可以定义新值并指定应更新哪些属性。 答案中的链接基本上指向 Mojo 描述:http://www.mojohaus.org/versions-maven-plugin/update-properties-mojo.html

    【讨论】:

    • 我在问题中说我已经尝试过maven versions:update-properties 目标。但这给了我很长的、特定于工件的版本。我不想手动设置版本,我希望对存储库的查找自动使用最新的快照版本。