从所有 Maven 子模块中删除 SNAPSHOT,但荣誉版本
Remove SNAPSHOT from all Maven Sub-Modules, But Honor Version
我正在做一个多模块项目。出于本练习的目的,我们可以假设有两个子模块。可以参考文章Maven Simple Project Archetype and Create an archetype from a multi-module project 跟进。
Parent - 1.0.0-SNAPSHOT
ChildA - 1.2.3-SNAPSHOT
ChildB - 1.0.0-SNAPSHOT
当我 运行 mvn versions:set -D removeSnapshot -D processAllModules
我希望版本会如下所示更改。
Parent - 1.0.0
ChildA - 1.2.3
ChildB - 1.0.0
但是,似乎 -SNAPSHOT 从所有版本中删除,除了与父版本不同的子版本。
Parent - 1.0.0
ChildA - 1.2.3-SNAPSHOT
ChildB - 1.0.0
有没有什么方法可以让 运行 mvn versions:set
命令在去除 -SNAPSHOT
后缀的同时遵守版本号?
更新#1
运行 mvn versions:set -D removeSnapshot=true
产生与 运行ning mvn versions:set -D removeSnapshot -D processAllModules
.
相同的结果
Parent - 1.0.0
ChildA - 1.2.3-SNAPSHOT
ChildB - 1.0.0
根据 Maven Enforcer documentation for multi-module projects...
The best practice in Maven is that all childs inherit the version from
their parent and don't define a new version which looks like this:
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module1</artifactId>
(..)
可以在上面的链接文章中找到其他用例。
我正在做一个多模块项目。出于本练习的目的,我们可以假设有两个子模块。可以参考文章Maven Simple Project Archetype and Create an archetype from a multi-module project 跟进。
Parent - 1.0.0-SNAPSHOT
ChildA - 1.2.3-SNAPSHOT
ChildB - 1.0.0-SNAPSHOT
当我 运行 mvn versions:set -D removeSnapshot -D processAllModules
我希望版本会如下所示更改。
Parent - 1.0.0
ChildA - 1.2.3
ChildB - 1.0.0
但是,似乎 -SNAPSHOT 从所有版本中删除,除了与父版本不同的子版本。
Parent - 1.0.0
ChildA - 1.2.3-SNAPSHOT
ChildB - 1.0.0
有没有什么方法可以让 运行 mvn versions:set
命令在去除 -SNAPSHOT
后缀的同时遵守版本号?
更新#1
运行 mvn versions:set -D removeSnapshot=true
产生与 运行ning mvn versions:set -D removeSnapshot -D processAllModules
.
Parent - 1.0.0
ChildA - 1.2.3-SNAPSHOT
ChildB - 1.0.0
根据 Maven Enforcer documentation for multi-module projects...
The best practice in Maven is that all childs inherit the version from their parent and don't define a new version which looks like this:
<parent>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>module1</artifactId>
(..)
可以在上面的链接文章中找到其他用例。