我在Nexus存储库中有3个工件,ArtifactA,ArtifactB和ArtifactC。不幸的是,他们没有共享相同的版本。
ArtifactA具有以下版本:
ArtifactB具有以下版本:
ArtifactC具有以下版本:
所有工件都是我的bom文件中的依赖项。
我想使用versions-maven-plugin检查更新并替换适用的bom中的版本。但是:
这些特定工件的bom文件如下所示:
<dependency>
<groupId>xxx</groupId>
<artifactId>ArtifactA</artifactId>
<type>zip</type>
<version>73.0.0.0-9</version>
</dependency>
<dependency>
<groupId>xxx</groupId>
<artifactId>ArtifactB</artifactId>
<type>rpm</type>
<version>7.3_0.0.0-9.noarch</version>
</dependency>
<dependency>
<groupId>xxx</groupId>
<artifactId>ArtifactC</artifactId>
<type>rpm</type>
<version>8.1_0.20.0-354</version>
</dependency>
我的第一次尝试是:
mvn版本:use-latest-versions -f bom_file
结果是:
[INFO]更新了xxx:ArtifactA:zip:73.0.0.0-9到版本80.0.12.0-1 [INFO]更新了xxx:ArtifactB:rpm:7.3_0.0.0-10.noarch到版本8.0_0.12.0-1.noarch [INFO]更新了xxx:ArtifactC:rpm:8.1_0.20.0-354到版本9.0_0.0.0-328
但这不符合我的要求。出于这个原因,我选择使用 -DallowMajorUpdates = false 标志。现在结果如下:
[INFO]更新了xxx:ArtifactA:zip:73.0.0.0-9到版本73.0.0.0-10
就是这样!!
为什么不能更新其他2个工件版本?是因为版本中的下划线,所以下划线之后的所有内容都被比作字符串?如果我无法更改下划线(这些rpms不是由我构建的),是否有替代解决方案? mojo的 rulesUri 选项怎么样?这可以用任何方式来帮助我吗?
谢谢大家的时间!