gpt4 book ai didi

maven - 操作项目版本属性以删除快照?

转载 作者:行者123 更新时间:2023-12-03 01:57:35 25 4
gpt4 key购买 nike

我有一个版本为 0.0.1-SNAPSHOT 的项目,当我们通过 TeamCity 构建它时,我们还会获得一个 build.vcs.number 属性,它是触发构建的 Subversion 修订版。

在我们的程序集中,我们创建一个名为 foo-distribution-0.0.1-SNAPSHOT.zip 之类的 zip 文件,但我想知道是否有一种方法可以将 build.vcs.number 属性插入到 Artifact 名称中给出 foo-distribution-0.0.1.12345-SNAPSHOT.zip 吗?

是否有一个内置属性只是版本号的数字部分,或者是否有其他方式来分割 -SNAPSHOT 部分?

编辑:我已经尝试将 pom.xml 版本设置为 ${my.version}-SNAPSHOT,然后在属性中定义 my.version - 这适用于任何情况,除了 Maven Release Plugin,它提示说它无法解析版本(可以理解,它也无法自动猜测下一个开发版本)。

最佳答案

我意识到这个问题有点过时了,但我刚刚遇到了类似的情况,这就是我解决它的方法:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>

这个构建帮助程序插件的“解析版本”mojo 将为您提供以下属性,您可以根据需要使用这些属性:

parsedVersion.majorVersion
parsedVersion.minorVersion
parsedVersion.incrementalVersion
parsedVersion.qualifier
parsedVersion.buildNumber

这应该涵盖您想要的所有版本“部分”。我目前正在使用它来构建 chrome 扩展,其中 list 版本不能包含“-SNAPSHOT”,并且最多必须是由点分隔的 4 个数字。在我的用例中,我使用此组合来产生所需的结果:

"version":"${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"

所以,我本质上是剥离“-SNAPSHOT”,这样我的扩展的本地开发副本将正确安装以进行测试。你可以用这些碎片 build 任何你想要的东西。 =)

关于maven - 操作项目版本属性以删除快照?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13347796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com