【问题标题】:Maven overwrite version tagMaven 覆盖版本标签
【发布时间】:2025-02-15 00:35:02
【问题描述】:

在我项目的POM文件中,有一些标签

<groupId>foo.bar</groupId>
<artifactId>foobar</artifactId>
<version>X</version>
<description>foo bar foo bar</description>

指定。我正在使用 Jenkins 进行一些构建,我想覆盖 X 值。我该怎么做?

举个例子,我对 MSBuild 比较熟悉,我可以在那里做类似的事情

msbuild.exe project.sln ...一些选项... /p:AssemblyVersion=X

我说的是那个 AssemblyVersion。 maven 可以吗?

除此之外,这甚至是一个好习惯吗?目前,我有版本1.0-SNAPSHOT。我应该手动更改该值吗?如何执行发布?

【问题讨论】:

标签: maven jenkins msbuild release


【解决方案1】:

要从 Jenkins 自动更新 pom 文件中的版本,请使用 -DnewVersion 参数和 mvn 命令。
示例:

mvn versions:set -DnewVersion=someversion

在构建期间,如果您想将 buildnumber 更新为您的工件版本,那么您可以传递该环境变量,例如 -DnewVersion=${BUILD_NUMBER}

编辑 1:
归功于此 SO 线程 updating-version-numbers-of-modules-in-a-multi-module-maven-project。解释清楚。

【讨论】:

    最近更新 更多