使用 mvn 版本排除属性:使用 excludesList 更新属性

Posted

技术标签:

【中文标题】使用 mvn 版本排除属性:使用 excludesList 更新属性【英文标题】:Exclude property using mvn versions:update-properties with excludesList 【发布时间】:2021-02-11 05:13:18 【问题描述】:

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

<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

【问题讨论】:

是的,结果相同 【参考方案1】:

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

mvn versions:update-properties -DexcludeProperties=scalatest.version 达到了我的要求。

docs

【讨论】:

以上是关于使用 mvn 版本排除属性:使用 excludesList 更新属性的主要内容,如果未能解决你的问题,请参考以下文章

.git/info/exclude 的对面 - 包括被 .gitignore 排除的文件

SpringBoot @SpringBootApplication(exclude={DataSourceAutoConfiguration.calss})注解说明

Spring Boot 排除自动配置的4个方法

如何使用 Get-ChildItem -exclude 排除多个文件夹?

vue的keep-alive中,使用include和exclude优先级

如何在 FluentAssertions 中使用 Excluding 来排除 Dictionary 中的特定 KeyValue 对