Maven Versions插件:版本:use-releases不执行任何操作

时间:2016-05-04 08:41:30

标签: java maven versions versions-maven-plugin

在传递给发布版之前,我需要更改项目的所有快照依赖项。我正在尝试使用命令行 mvn版本的版本:use-releases :use-releases ,但它对我不起作用。我正在使用Nexus存储库来发布版本,并且发布版本可以正确部署并具有公共访问权限

<dependencyManagement>  
 <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.efx.util</groupId>
      <artifactId>efx-util</artifactId> 
      <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>
</dependencyManagement>

当我执行:mvn versions:use-releases时,它什么都不做。

[INFO] ------------------------------------------------------------------------
[INFO] Building efx-clientesocket 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:use-releases (default-cli) @ efx-clientesocket ---
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building efx-clientesocket-api 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:use-releases (default-cli) @ efx-clientesocket-api ---
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building efx-clientesocket-impl 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:use-releases (default-cli) @ efx-clientesocket-impl ---
[INFO] Ignoring reactor dependency: com.efx.clientesocket:efx-clientesocket-api:jar:0.0.1-SNAPSHOT
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building efx-clientesocket-conf 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:use-releases (default-cli) @ efx-clientesocket-conf ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] efx-clientesocket .................................. SUCCESS [  1.539 s]
[INFO] efx-clientesocket-api .............................. SUCCESS [  0.031 s]
[INFO] efx-clientesocket-impl ............................. SUCCESS [  0.016 s]
[INFO] efx-clientesocket-conf ............................. SUCCESS [  0.015 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------

但是版本:display-dependency-updates会检测相应的版本

 ------------------------------------------------------------------------
[INFO] Building efx-clientesocket-conf 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.2:display-dependency-updates (default-cli) @ efx-clientesocket-conf ---
[INFO] artifact junit:junit: checking for updates from nexus
[INFO] The following dependencies in Dependency Management have newer versions:
[INFO]   com.efx.util:efx-util ................ 0.0.1-SNAPSHOT -> 1.0.0-RELEASE
[INFO]   junit:junit ............................................. 4.11 -> 4.12
[INFO]
[INFO] ------------------------------------------------------------------------

而且我也在尝试使用版本:use-last-releases作为替代版本,它就可以了。我在这种情况下使用-Dincludes =来避免更新无快照版本。但是,我想使用版本:use-releases 来确保只更新所有快照版本并立即覆盖属性中的版本

我正在使用的Maven版本是3.3.1,插件版本是2.2

有人知道为什么不工作?

1 个答案:

答案 0 :(得分:3)

1-版本:use-releases在pom中搜索已发布的所有-SNAPSHOT版本,并将其替换为相应的发行版本。

com.efx.util:efx-util ................ 0.0.1-SNAPSHOT -> 1.0.0-RELEASE 

这意味着efx-util-0.0.1-SNAPSHOT应该有相应的版本efx-util-0.0.1-RELEASEefx-util-0.0.1(0.0.1的发布版本),否则它将无效。 1.0.0-RELEASE不是相应的版本

2-版本:use-latest-releases在pom中搜索所有非SNAPSHOT版本,这些版本是较新版本,并将其替换为最新版本。

在这种情况下,它不限于(0.0.1-SNAPSHOT)的相应版本。因此,该版本可能具有不同的版本号(1.0.0-RELEASE)。

希望这会有所帮助。