Maven Release Plugin-Release:branch-Version参数in-DbranchName
在执行Maven Release Plugin-Release:branch-Version参数in-DbranchName,maven,maven-release-plugin,Maven,Maven Release Plugin,在执行mvn release:branch命令时,我想尝试使用版本参数配置-DbranchName参数。但是我还没有找到一个成功的方法 例如,如果我在trunk中有一个版本为1.0-SNAPSHOT的项目,我想使用--批处理模式选项创建一个分支,并将当前项目版本(1.0-SNAPSHOT)的-DbranchName指定为branchName中的参数 我尝试过做mvn发行版:branch-DbranchName=VERSION-@{project.VERSION},但它似乎没有像我所希望的那样工作
mvn release:branch
命令时,我想尝试使用版本参数配置-DbranchName
参数。但是我还没有找到一个成功的方法
例如,如果我在trunk中有一个版本为1.0-SNAPSHOT的项目,我想使用--批处理模式
选项创建一个分支,并将当前项目版本(1.0-SNAPSHOT)的-DbranchName
指定为branchName中的参数
我尝试过做mvn发行版:branch-DbranchName=VERSION-@{project.VERSION}
,但它似乎没有像我所希望的那样工作。我没有创建名为VERSION-1.0的分支,而是出现以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:branch (default-cli) on project project-a: Unable to branch SCM
[ERROR] Provider message:
[ERROR] The svn branch command failed.
[ERROR] Command output:
[ERROR] svn: E205000: Try 'svn help copy' for more information
[ERROR] svn: E205000: Syntax error parsing peg revision '{project.version}'
有没有有效的方法可以做到这一点?或者在使用maven release插件执行release:branch
时,这是不可能的
编辑
基本上,我所寻找的是类似于
tagNameFormat
属性的东西,只是用于分支。在执行发布时:执行
目标,我可以在pom中指定VERSION-@{project.VERSION}
,并且在使用--批处理模式
执行发布时,我不需要包含任何标记名属性。执行发布:branch
时,分支名称的格式是否有类似的属性?您可以使用内置的${project.version}
(前缀为$
而不是@
——后者似乎仅在标记名格式
参数中可用)。请注意,如果使用${project.version}
,则该值中可能包含子字符串SNAPSHOT
。删除该子字符串可能有几种方法。一种方法是应用中提到的helper插件,该插件允许您访问版本的语义组件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>parse-version</id>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
</executions>
</plugin>
或者最好将branchName
参数作为插件配置的一部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<configuration>
<branchName>VERSION-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</branchName>
</configuration>
<goals>
<goal>branch</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven发布插件
2.5.3
版本-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}
分支
在这种情况下,您不需要在命令行上传递这些神奇属性。完美,这正是我想要的。非常感谢。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<executions>
<execution>
<configuration>
<branchName>VERSION-${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</branchName>
</configuration>
<goals>
<goal>branch</goal>
</goals>
</execution>
</executions>
</plugin>