我正在使用Maven Versions插件的pom.xml - properties目标来更新多个项目的属性。(https://www.mojohaus.org/versions-maven-plugin/update-properties-mojo.html)。我想要最新版本的属性依赖项。
现在,有一些版本错误的二进制文件。我希望我的代码忽略这些版本。为此,我创建了我的"rules.xml“文件。我想把它作为-DrulesUri参数提供给update-properties目标。
我已经尝试在项目的pom.xml文件中指定这个rules.xml文件,如(Maven versions plugin: reference a rule.xml from a maven dependency?)所示。这是因为插件可以成功地忽略rules.xml中指定的版本。因此,rules.xml文件没有问题。但是,这在我的情况下没有用,因为涉及到许多项目,并且我不能更新每个项目的pom.xml。
rulesUri属性的文档指出“包含控制如何比较版本号的规则的ruleSet文件的URI。URI可以是旅行车URI或类路径URI(例如,类路径:/package/sub/package/rules.xml)”。这么多的文档对我没什么帮助。我想要一个关于如何在-DrulesUri参数中指定rules.xml文件的示例。我尝试将rules.xml文件指定为本地相对路径/绝对路径。但是,update-properties goal似乎无法识别规则,只是在没有-DrulesUri参数的情况下进行类似的执行。我试着通过阅读https://maven.apache.org/wagon/来理解旅行车URI。但是,我没有找到一种简单的方法,可以将我的rules.xml上传到某个地方,然后使用这个旅行车URI在-DrulesUri中指定。
这是我的rules.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<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">25243.*.*</ignoreVersion>
</ignoreVersions>
<rules>
</rules>
</ruleset>发布于 2019-06-24 15:27:44
使用-Dmaven.version.rules
示例:
mvn versions:display-dependency-updates -Dmaven.version.rules=file:///$HOME/.m2/rules.xml来自AbstractVersionsReport.java源代码:
/**
* URI of a ruleSet file containing the rules that control how to compare
* version numbers. The URI could be either a Wagon URI or a classpath URI
* (e.g. <code>classpath:///package/sub/package/rules.xml</code>).
*
* @since 1.0-alpha-3
*/
@Parameter( property = "maven.version.rules" )
private String rulesUri;https://stackoverflow.com/questions/54052587
复制相似问题