我一直试图解决这个问题几天,我已经查看了堆栈溢出,但没有一个答案可以解决我的问题。我想在我的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.
答案 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客户端提示时接受证书。