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>