【问题标题】:Maven pom variables as command argumentMaven pom 变量作为命令参数
【发布时间】:2014-07-23 12:33:25
【问题描述】:

我希望能够做类似的事情:

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

我确定这行不通,我正在寻求有关如何实现它的帮助。 mvn release:branch 需要一个分支名称。我需要命令行参数上的 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 时才会触发此配置文件。

感谢您的帮助。

编辑:更新 pom

<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>

【问题讨论】:

  • 为什么你认为你可能在mvn 甚至还没有读过pom.xml 之前提到了${project.version}

标签: maven-3 maven-release-plugin


【解决方案1】:

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

删除&lt;activation&gt; 节,在你的情况下这样做

mvn release:branch -P branch

鉴于您在配置中已经硬编码了${project.version},这就是您所需要的。

如果不运行mvn 命令开头或在外部解析pom.xml,则无法获取${project.version}

上面的documentation 很清楚:

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

mvn release:branch -DbranchName=my-branch

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

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

【讨论】:

  • 谢谢。我只是这样做了:mvn release:branch -P branch。见上面的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多