versions-maven-plugin:update-属性 未更新 pom.xml
versions-maven-plugin:update-property not updating pom.xml
嗨 Meier 我使用了以下目标:
mvn versions:update-property
-Dproperty="emom.web.dependency.shr.version"
-Dincludes:org.safeway.com:emom-shr
-DgenerateBackupPoms=false
-DallowIncrementalVersios=true
-DallowSnapshots=true
clean package
我的工作 B pom.xml 是:
<dependency>
<groupId>com.safeway.app</groupId>
<artifactId>emom-shr</artifactId>
<version>${emom.web.dependency.shr.version}</version>
</dependency>
在属性下它有硬编码的版本:
<emom.web.dependency.shr.version>19.6.5-SNAPSHOT</emom.web.dependency.shr.version>
我的工作 A pom.xml:
<groupId>com.safeway.app</groupId>
<artifactId>emom-shr</artifactId>
<version>20.1.0-SNAPSHOT</version>
<packaging>jar</packaging>
当我 运行 实现上述目标时,Maven 正在从 Artifactory 选择最新版本(即 20.1.0),但是当我在属性下检查作业 B 的 pom.xml 时,它仍然显示 19.6。 5.我需要一种方法将 19.6.5 或当前版本更改为可用的最新版本。难道我做错了什么?我想不通。
这里有一个 versions-maven-plugin:update-property
实际工作的例子。我使用了通用的 Mockito 库作为示例,它在 Maven Central 中适用于所有人。
从这个 POM 开始(注意 mockito-version
属性):
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>abc</groupId>
<artifactId>def</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<mockito-version>2.22.0</mockito-version>
</properties>
<dependencies>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
将其升级到最新版本的最简单方法是:
mvn versions:update-property -Dproperty=mockito-version
根据您的情况将 mockito-version
替换为 emom.web.dependency.shr.version
。
然后您可以开始使用更多 goal options 来调整选项。例如,您可以:
允许快照,而不仅仅是发布,-DallowSnapshots=true
。
禁止使用 -DallowMajorUpdates=false
进行主要版本更新(即从右边数第三个元素)。请注意,围绕这些版本号部分的逻辑在插件中似乎有点不稳定 - 或者不是我期望的那样。
避免使用 -DgenerateBackupPoms=false
创建备份 POM。这样更简洁,但是如果您省略此选项,则可以使用 mvn versions:revert
返回到开始的位置。
要将此应用于您的场景,我认为您需要:
检查您的实际命令中是否有拼写错误(就像您在问题和评论中一样)。
去掉options中没有出现的选项。
可能为了简单起见,不要尝试将 运行 与其他任何东西结合使用(除非它处于自动化状态),所以在最后去掉 clean package
命令。
嗨 Meier 我使用了以下目标:
mvn versions:update-property
-Dproperty="emom.web.dependency.shr.version"
-Dincludes:org.safeway.com:emom-shr
-DgenerateBackupPoms=false
-DallowIncrementalVersios=true
-DallowSnapshots=true
clean package
我的工作 B pom.xml 是:
<dependency>
<groupId>com.safeway.app</groupId>
<artifactId>emom-shr</artifactId>
<version>${emom.web.dependency.shr.version}</version>
</dependency>
在属性下它有硬编码的版本:
<emom.web.dependency.shr.version>19.6.5-SNAPSHOT</emom.web.dependency.shr.version>
我的工作 A pom.xml:
<groupId>com.safeway.app</groupId>
<artifactId>emom-shr</artifactId>
<version>20.1.0-SNAPSHOT</version>
<packaging>jar</packaging>
当我 运行 实现上述目标时,Maven 正在从 Artifactory 选择最新版本(即 20.1.0),但是当我在属性下检查作业 B 的 pom.xml 时,它仍然显示 19.6。 5.我需要一种方法将 19.6.5 或当前版本更改为可用的最新版本。难道我做错了什么?我想不通。
这里有一个 versions-maven-plugin:update-property
实际工作的例子。我使用了通用的 Mockito 库作为示例,它在 Maven Central 中适用于所有人。
从这个 POM 开始(注意 mockito-version
属性):
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>abc</groupId>
<artifactId>def</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<mockito-version>2.22.0</mockito-version>
</properties>
<dependencies>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito-version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
将其升级到最新版本的最简单方法是:
mvn versions:update-property -Dproperty=mockito-version
根据您的情况将 mockito-version
替换为 emom.web.dependency.shr.version
。
然后您可以开始使用更多 goal options 来调整选项。例如,您可以:
允许快照,而不仅仅是发布,
-DallowSnapshots=true
。禁止使用
-DallowMajorUpdates=false
进行主要版本更新(即从右边数第三个元素)。请注意,围绕这些版本号部分的逻辑在插件中似乎有点不稳定 - 或者不是我期望的那样。避免使用
-DgenerateBackupPoms=false
创建备份 POM。这样更简洁,但是如果您省略此选项,则可以使用mvn versions:revert
返回到开始的位置。
要将此应用于您的场景,我认为您需要:
检查您的实际命令中是否有拼写错误(就像您在问题和评论中一样)。
去掉options中没有出现的选项。
可能为了简单起见,不要尝试将 运行 与其他任何东西结合使用(除非它处于自动化状态),所以在最后去掉
clean package
命令。