5

有没有办法可以使用 git commit 钩子在 git commit 上自动更新 pom.xml 文件?

我想要做的是,我想用基于分支名称的新版本替换旧版本的所有实例。

例如。

如果我从 master 签出,我可能会在我的 pom.xml 中找到

<dependancy>
  <groupId>com.mycompany</groupId>
  <artifactId>my_component</artifactId>
  <version>master-SNAPSHOT</version>
</dependancy>

或者

<groupId>com.mycompany.project</groupId>

    <artifactId>mainProject</artifactId>
    <version>master-SNAPSHOT</version>
    <name>mainProject</name>

我想做的是确保提交新分支的每个人都将新分支反映在 pom.xml 中。因此,如果我基于名为“myNewBranch”的 master 创建一个新分支,我希望 pom.xml 自动更新为以下内容:

<dependancy>
  <groupId>com.mycompany</groupId>
  <artifactId>my_component</artifactId>
  <version>myNewBranch-SNAPSHOT</version>
</dependancy>

或者

<groupId>com.mycompany.project</groupId>

    <artifactId>mainProject</artifactId>
    <version>myNewBranch-SNAPSHOT</version>
    <name>mainProject</name>
4

1 回答 1

3

您正在寻求做一些核心 Maven 或Maven SCM 插件未“开箱即用”提供的事情。

您必须编写一个在提交后运行的 shell 脚本,该脚本以编程方式获取(或创建)分支名称,按照如何以编程方式确定当前签出的 Git 分支,然后调用mvn versions:set

你也可以做一些事情,比如制作一个自定义的 Maven 插件或执行maven-ant-run来做到这一点,但我认为脚本方法对你来说是阻力最小的路径。

于 2013-06-19T13:47:20.833 回答