无法使用maven版本插件更新特定版本

时间:2014-12-19 11:13:56

标签: maven versioning nexus

我在Nexus存储库中有3个工件,ArtifactA,ArtifactB和ArtifactC。不幸的是,他们没有共享相同的版本。

ArtifactA具有以下版本:

  • 73.0.0.0-10
  • 73.0.0.0-9
  • 80.0.12.0-1

ArtifactB具有以下版本:

  • 7.3_0.0.0-10.noarch
  • 7.3_0.0.0-9.noarch
  • 8.0_0.12.0-1.noarch

ArtifactC具有以下版本:

  • 8.1_0.20.0-354
  • 8.1_0.20.0-355
  • 9.0_0.0.0-328

所有工件都是我的bom文件中的依赖项。

我想使用versions-maven-plugin检查更新并替换适用的bom中的版本。但是:

  • 对于ArtifactA,我想继续使用从73.0开始的最新版本。*
  • 对于ArtifactB,我想继续使用从7.3 _ *
  • 开始的最新版本
  • 对于ArtifactC,我想继续使用从8.1 _ *
  • 开始的最新版本

这些特定工​​件的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 选项怎么样?这可以用任何方式来帮助我吗?

谢谢大家的时间!

0 个答案:

没有答案