【问题标题】:Maven's set version plugin doesn't set parent version in child moduleMaven 的设置版本插件没有在子模块中设置父版本
【发布时间】:2018-07-25 03:09:20
【问题描述】:

当我尝试自动化项目中所有 pom 的版本更新时,我无法解决这个问题。 versions:set plugin/command 确实替换了 pom 的几乎每个版本,但不是 pom.xml 本身的父部分中定义的父 pom(另一个项目)的版本。

<parent>
    <groupId>com.test.app</groupId>
    <artifactId>helloWorld</artifactId>
    <version>3.19.0-SNAPSHOT</version>
    <relativePath />
</parent>

<groupId>com.test.app.child</groupId>
<version>3.21.0-SNAPSHOT</version>
<artifactId>helloWorldChild</artifactId>
<name>${project.groupId}::${project.artifactId}</name>
<packaging>pom</packaging>

如您所见,这两个版本是不同的。这是在我执行以下命令之后:

mvn versions:set -DgroupId=com.test.app.* -DartifactId=* -DoldVersion=* -DnewVersion=3.21.0-SNAPSHOT

预期结果是,所有版本都是3.21.0-SNAPSHOT,而不是3.19.0-SNAPSHOT。有没有办法解决这个问题?

【问题讨论】:

    标签: java maven maven-versions-plugin


    【解决方案1】:

    您的版本和组应该来自父级,它们不应该设置在子级中,只有工件应该设置在子级中。

    <parent>
        <groupId>com.test.app</groupId>
        <artifactId>helloWorld</artifactId>
        <version>3.19.0-SNAPSHOT</version>
        <relativePath />
    </parent>
    
    <artifactId>helloWorldChild</artifactId>
    <name>${project.groupId}::${project.artifactId}</name>
    <packaging>pom</packaging>
    

    【讨论】:

    • 不幸的是,我们的项目不允许这样做有几个原因。仍然有解决方法的想法吗?
    • 它们是 maven 的规则,你正在打破它们,这就是多模块项目的工作方式
    猜你喜欢
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多