私はmavenを使用しています。私の目標は、バージョン番号にgit commit hashを含めることです。何かが好きです:1.1。{git_hash}。jitバージョンにgitコミットハッシュを組み込みます。
私はこれに従うことを試みていますtutorial。
Q:pomファイルのversion要素で指定されたバージョン番号を何とかオーバーライドできますか?
私はmavenを使用しています。私の目標は、バージョン番号にgit commit hashを含めることです。何かが好きです:1.1。{git_hash}。jitバージョンにgitコミットハッシュを組み込みます。
私はこれに従うことを試みていますtutorial。
Q:pomファイルのversion要素で指定されたバージョン番号を何とかオーバーライドできますか?
これを達成する1つの方法は、git-commit-id-pluginを使用することです。私はvalidate
に位相を変更したので、リビジョン番号プロパティは、アーティファクトがパッケージ化されたときにはすでに利用可能であること、
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${git-commit-id-plugin.version}</version>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
<configuration>
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
</configuration>
</plugin>
注:あなたのpom.xmlのbuild
セクションのプラグインのリストにこれを追加。そして
、build
セクションに次の行を追加します
<build>
<finalName>${project.artifactId}-${project.version}-${git.commit.id.describe-short}</finalName>
<!-- your list of plugins -->
</build>
git.commit.id.describe-short
プロパティはgit-commit-id-plugin
によって生成されます。現在のgitリビジョン番号(短縮された7桁)とオプションのdirty
インジケータが含まれています。
生産アーティファクトは、次のようになります。examplelib-1.0.2-efae3b9.jar
(またはexamplelib-1.0.2-efae3b9-dirty.jar
リポジトリにコミットされていない変更がある場合)。
また、この情報をアーティファクトのMANIFEST.MFに入力することもできます。そのような場合には、プラグインのリストにこれを追加します(例では、アーティファクトがjar
あると仮定):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<SCM-Revision>${git.commit.id.describe-short}</SCM-Revision>
</manifestEntries>
</archive>
</configuration>
</plugin>
追加発言:私はの簡単な構成を示してきた
git-commit-id-plugin
。あなたのサイトでは、より多くのオプションとプロパティを見つけることができます。プラグインは、pom.xml内で使用できるプロパティに加えて、リビジョンに関する情報を含むプロパティファイルを生成することもできます。
git-commit-id-plugin
の代わりに、buildnumber-maven-pluginを使用することをお勧めします。リビジョン番号を取得するには、このプラグインにpom.xmlで設定されたSCMプラグインが必要です。
この設定は、アーティファクトを変換または名前を変更するプラグイン(私のケースでは、それはmaven-shade-pluginでした - それが生成するソースjarの1つに適切なリビジョン番号が含まれていませんでした)
どのように動作させましたか?テンプレート変数 'git.commit.id.describe-short'に値がありません – Renann
'git-commit-id-plugin'定義では、実行フェーズを 'validate'に変更したので、アーティファクトがパッケージ化されているときに、リビジョン番号プロパティはすでに使用可能です。 – user3078523
リソースフィルタリングは、このプラグインが機能するために重要ですが、省略しないでください! ( ' true ') –
naXa