Maven Pom.xml自动增量版本

时间:2015-12-28 17:42:10

标签: maven

我一直试图解决这个问题几天,我已经查看了堆栈溢出,但没有一个答案可以解决我的问题。我想在我的Pom.xml中使用<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>maven.Test</groupId>
  <artifactId>Hello</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>jar</packaging>

<distributionManagement>
    <repository>
        <id>Artifactory</id>
        <name>Artifactory-releases</name>
        <url>${publish.location}</url>
    </repository>
    <snapshotRepository>
        <id>Artifactory</id>
        <name>Artifactory-snapshots</name>
        <url>${publish.location}</url>
    </snapshotRepository>
</distributionManagement>

</project>

我目前正在使用Maven 3.3.3,我已经研究过SCM插件,但那些似乎没有用。我知道你可以通过将它们设置为变量来增加版本,但这对我的开发人员来说并不理想。使用命令mvn deploy运行构建时,我希望版本自动增加到1.0.1,依此类推。

编辑:

我尝试过maven发布,但遇到了一个可能在我身上的问题。对于发布插件,我需要对我的Pom.xml进行编辑吗?我跑了mvn release:prepare但遇到了这个错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.3
.2:prepare (default-cli) on project Hello: Unable to check for local modificatio
ns
[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] 'svn' is not recognized as an internal or external command,
[ERROR] operable program or batch file.

3 个答案:

答案 0 :(得分:4)

拾起@ rec的回答:

使用:

$ mvn -B release:prepare release:perform

请注意-B。它将以批处理模式运行,而发布插件根本不会询问。

答案 1 :(得分:2)

版本作为“发布”工作流程的一部分而增加。查看Maven Release Plugin。简而言之:

$ mvn release:prepare
$ mvn release:perform

发布插件会增加版本但要求您确认,因此它不是完全自动的。

答案 2 :(得分:0)

@ Michael-O回答了原来的问题。但是,发生错误'svn' is not recognized as an internal or external command,,因为Maven无法执行svn命令行。要解决此问题,请在PATH环境变量中添加svn。通常,如果您安装sliksvn client,它会为您添加路径。除了@ Michael-O,您可能还需要包含用户名和密码。

mvn -B -Dpassword=**** -Dusername=**** clean release:prepare release:perform 

如果拒绝了subversion服务器证书,则必须将服务器证书添加到svn配置中。最简单的方法是从命令行执行svn并在svn客户端提示时接受证书。