Maven pom变量作为命令参数

时间:2014-07-23 12:33:25

标签: maven-3 maven-release-plugin

我希望能够做到这样的事情:

mvn release:branch -DbranchName=${project.version}

我确信这不会奏效,我会就如何实现它寻求帮助。 mvn release:branch需要branchName。我需要在命令行参数上使用branchName,将项目版本作为值。我的pom看起来像这样:

<profile>
          <id>branch</id>
          <activation>
            <property>
              <name>branchName</name>
            </property>
          </activation>
          <build>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                  <tagNameFormat>v@{project.version}-beta</tagNameFormat>
                  <autoVersionSubmodules>true</autoVersionSubmodules>
                  <suppressCommitBeforeBranch>true</suppressCommitBeforeBranch>
                  <remoteTagging>false</remoteTagging>
                </configuration>
              </plugin>
            </plugins>
          </build>
      </profile>

仅当命令行参数中存在branchName时才会触发此配置文件。

感谢您的帮助。

编辑:更新后的广告

<profile>
          <id>branch</id>
          <build>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                  <branchName>@{project.version}</branchName>
                  <tagNameFormat>v@{project.version}-beta</tagNameFormat>
                  <autoVersionSubmodules>true</autoVersionSubmodules>
                  <suppressCommitBeforeBranch>true</suppressCommitBeforeBranch>
                  <remoteTagging>false</remoteTagging>
                </configuration>
              </plugin>
            </plugins>
          </build>
      </profile>

1 个答案:

答案 0 :(得分:1)

激活配置文件的正确方法是:

删除<activation>节,并在您的情况下执行

mvn release:branch -P branch

这是你应该需要的全部,因为你在配置中有硬编码${project.version}

如果没有运行${project.version}命令从外部开始或解析mvn,则无法获取pom.xml

documentation对此非常明确:

  

要创建分支,请执行以下命令:

mvn release:branch -DbranchName=my-branch
  

默认情况下,新分支中的POM与版本保持相同的版本   本地工作副本,本地POM增加到下一个   修订。如果要更新新分支中的版本而不是更新   工作副本,运行:

mvn release:branch -DbranchName=my-branch -DupdateBranchVersions=true -DupdateWorkingCopyVersions=false