使用带有 excludesList 的 mvn versions:update-properties 排除 属性

Exclude property using mvn versions:update-properties with excludesList

我正在使用 mvn versions:update-properties -DexcludesList=org.scalatest:scalatest* 排除 属性 scalatest.version 在 pom.xml:

中的更新
<properties>
    <scalatest.version>3.0.5</scalatest.version>
</properties>

但在 运行 之后,命令 scalatest.version 更新为 3.3.0-SNAP2 版本,即 latest

如何正确使用-DexcludesList参数?我关注了 docs

我发现的唯一解决方法是排除 rules.xml 中的 SNAP2 版本,如下所示:

<ruleset xmlns="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" comparisonMethod="maven" xsi:schemaLocation="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0 http://mojo.codehaus.org/versions-maven-plugin/xsd/rule-2.0.0.xsd">
    <ignoreVersions>
        <ignoreVersion type="regex">9.*</ignoreVersion>
        <ignoreVersion type="regex">6.1.*</ignoreVersion>
        <ignoreVersion type="regex">.*SNAP.*</ignoreVersion>
    </ignoreVersions>
    <rules>
    </rules>
</ruleset>

和运行mvn versions:update-properties -Dmaven.version.rules=file:////tmp/rules.xml -DexcludesList=org.scalatest:scalatest*

这样 scalatest 更新为 3.2.2。我想完全忽略 scalatest 版本的更新。

尝试了不同的变体:-DexcludesList=org.scalatest:scalatest:*-DexcludesList=org.scalatest:scalatest:*:*:* 无济于事。

使用 versions-maven-plugin 的 2.1 版,已更新至最新版本 2.8.1,并且 scalatest 已更新。

解决方案是使用 -DexcludeProperties=scalatest.version 参数。

mvn versions:update-properties -DexcludeProperties=scalatest.version 实现了我所需要的。

docs