从所有 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>
(..)

可以在上面的链接文章中找到其他用例。