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命令。