5

git commit フックを使用して、git commit で pom.xml ファイルを自動的に更新する方法はありますか?

私がやりたいことは、ブランチ名に基づいて、古いバージョンのすべてのインスタンスを新しいバージョンに置き換えたいということです。

例えば。

マスターからチェックアウトすると、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」という名前のマスターに基づいて新しいブランチを作成する場合、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 プラグインによって「すぐに」提供されないことをしようとしています。

現在チェックアウトされている Git ブランチをプログラムで判別する方法に従ってブランチ名をプログラムで取得 (または作成) し、次に呼び出すシェル スクリプトを、コミット後に実行するシェル スクリプトを作成する必要があります。mvn versions:set

カスタム Maven プラグインを作成したり、maven-ant-run を実行してこれを行うこともできますが、スクリプト アプローチが最も抵抗の少ない方法になると思います。

于 2013-06-19T13:47:20.833 に答える