首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvn版本:当子模块与父模块匹配时,设置不更改子模块版本,这与聚合器pom不相同

mvn版本:当子模块与父模块匹配时,设置不更改子模块版本,这与聚合器pom不相同
EN

Stack Overflow用户
提问于 2019-07-04 15:38:45
回答 1查看 1.3K关注 0票数 0

我需要使用versions:set更改聚合器maven项目的版本及其所拥有的两个模块。其中一个用例不起作用,而且我不知道我是否遗漏了什么,或者这个用例尤其是这个用例没有得到插件的良好支持。子模块版本不会更新到1.4.0,因为它们将与someother-parentartifact-1someother-parentartifact-2的版本相匹配。我一直无法使用与1.4.0不同的版本重现这个问题,所以我猜想插件不知何故会变得混乱。

聚合器:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mygroupId</groupId>
    <artifactId>my-aggregator</artifactId>
    <version>1.4.0-RC1</version>
    <packaging>pom</packaging>

    <properties>
        <maven.deploy.skip>true</maven.deploy.skip>
    </properties>

    <modules>
        <module>module-1</module>
        <module>module-2</module>
    </modules>

</project>

单元1:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mygroupId</groupId>
    <artifactId>module-1</artifactId>
    <version>1.4.0-RC1</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>com.myanothergroupId</groupId>
        <artifactId>someother-parentartifact-1</artifactId>
        <version>1.4.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>com.myanothergroupId</groupId>
            <artifactId>some-lib</artifactId>
        </dependency>
    </dependencies>

</project>

单元2:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mygroupId</groupId>
    <artifactId>module-2</artifactId>
    <version>1.4.0-RC1</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>com.myanothergroupId</groupId>
        <artifactId>someother-parentartifact-2</artifactId>
        <version>1.4.0</version>
        <relativePath/><!-- lookup parent from repository -->
    </parent>

    <dependencies>

         (bunch of dependencies)

    </dependencies>

</project>

一些见解:

  • 两个模块的父项目都不是聚合器。这是有意的,除非没有其他选择,否则不应改变。
  • maven.deploy.skip的值不会改变结果。
  • 当要设置的版本(1.4.0)与子模块的父模块的版本匹配时,我才看到了这种情况。
  • 使用的命令是:mvn versions:set -DgenerateBackupPoms=false -DnewVersion=1.4.0 -DprocessAllModules
  • 还试图使用update-child-modules。没有成功。

一些日志:

代码语言:javascript
复制
[INFO]
[INFO] ----------< com.mygroupId:my-aggregator >----------
[INFO] Building my-aggregator 1.4.0-RC1                                      [1/3]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.7:set (default-cli) @ my-aggregator ---
[INFO] Searching for local aggregator root...
[INFO] Local aggregation root: C:\somedirectory\my-aggregator
[INFO] Processing change of com.mygroupId:my-aggregator:1.4.0-RC1 -> 1.4.0
[INFO] Processing com.mygroupId:module-1
[INFO]     Updating project com.mygroupId:module-1
[INFO]         from version 1.4.0-RC1 to 1.4.0
[INFO]     Updating project com.mygroupId:module-1
[INFO]         from version 1.4.0 to 1.4.0-RC1
[INFO]
[INFO] Processing com.mygroupId:module-2
[INFO]     Updating project com.mygroupId:module-2
[INFO]         from version 1.4.0-RC1 to 1.4.0
[INFO]     Updating project com.mygroupId:module-2
[INFO]         from version 1.4.0 to 1.4.0-RC1
[INFO]
[INFO] Processing com.mygroupId:my-aggregator
[INFO]     Updating project com.mygroupId:my-aggregator
[INFO]         from version 1.4.0-RC1 to 1.4.0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for my-aggregator 1.4.0-RC1:
[INFO]
[INFO] module-1 .................................... SKIPPED
[INFO] module-2 .................................. SKIPPED
[INFO] my-aggregator ......................................... SUCCESS [  3.445 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  23.637 s
[INFO] Finished at: 2019-07-04T17:02:37+02:00
[INFO] ------------------------------------------------------------------------

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-07-05 08:53:11

我用mvn versions:set -DgenerateBackupPoms=false -DnewVersion=1.4.0 -DoldVersion=* -DgroupId=* -DartifactId=*做了这件事

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56891105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档