我的项目中有几个POM,其中一些具有指向存储库外部工件的父对象。因此,当我发布此版本时,我应该为我的父母和项目使用不同的版本。
我需要搜索以“ com.mycompany”作为父groupId和“ myproduct”作为父artifactId的POM,versions-maven-plugin
应该仅将父版本更新为1.0.0。项目版本应保持不变。稍后,我将正常更改项目版本。
我无法执行此操作。到目前为止,我已经尝试过: 我设计了一个包含以下内容的Rules.xml:
<ruleset comparisonMethod="maven" xmlns="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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">
<rules>
<rule groupId="com.mycompany" artifactId="myproduct" comparisonMethod="maven"/>
<ignoreVersions>
<ignoreVersion type="regex">.*</ignoreVersion>
</ignoreVersions>
</rules>
</ruleset>
我用
调用了版本插件mvn versions:set -DnewVersion=1.0.0 -DprocessProject=false -DrulesUri=file:///doc/Rules/Rules.xml -DgenerateBackupPoms=true
但这不会更新这些pom的父版本。
我也叫update-parent
mvn versions:update-parent -DparentVersion=1.0.0 -DrulesUri=file:///doc/Jenkinsfiles/PR/version/Rules.xml -DgenerateBackupPoms=true
但这为我更新了所有父poms。我猜我的Rules.xml也错了。但是即使这样,父版本还是任意的,而不是parentVersion。也许我不理解这个Maven目标中parentVersion背后的含义。我需要它来更新到我选择的版本。