我想知道是否可以通过命令行覆盖maven中的project.version/version变量?
以下操作不起作用:
mvn deploy -Dversion=1.0-test-SNAPSHOT
mvn deploy -Dproject.version=1.0-test-SNAPSHOT
我的pom.xml是:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>just.another.company.name</groupId>
<artifactId>my-pom</artifactId>
<version>1.3-SNAPSHOT</version>
<name>My Module</name>
<packaging>jar</packaging>
<description>POM Project for My Module</description>
</project>
3条答案
按热度按时间mznpcxlj1#
简单地说,您不能覆盖
project.version
。通常,我从更新parentPom开始
如果父pom包含所有子项目,这就足够了。如果没有,您将需要转到包含所有子项目的超级项目并执行
另外,如果parentPom存在于相对路径中,则前面两个步骤就足够了。如果不存在,则需要使用新版本安装parentPom项目
通常,如果你没有模块依赖于另一个模块,这就足够了。如果你这样做了,把它的版本声明为一个项目。像这样的版本,它会自动反映出来
检查maven Versions Plugin docs。
esbemjvw2#
在Maven 3.5+中,如果将以下内容放入pom.xml
默认情况下,它将使用1.0.0-SNAPSHOT,但您可以在命令行中覆盖它:
显然,只有当占位符属性名为
revision
时,这才有效(您也可以在您的版本中使用changelist
和sha1
占位符)。参见https://maven.apache.org/maven-ci-friendly.html
qco9c6ql3#
可以,您可以通过从命令行传递所需的变量来重写项目版本。
确保在
pom.xml
中使用变量例如:
在
pom.xml
中这应该在运行时选择。如果这种方法不起作用,你能展示一下你是如何在你的
pom.xml
中使用它们的吗?