2016-11-06 8 views

答えて

12

これを達成する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> 

追加発言:私はの簡単な構成を示してきた

  1. git-commit-id-plugin。あなたのサイトでは、より多くのオプションとプロパティを見つけることができます。プラグインは、pom.xml内で使用できるプロパティに加えて、リビジョンに関する情報を含むプロパティファイルを生成することもできます。

  2. git-commit-id-pluginの代わりに、buildnumber-maven-pluginを使用することをお勧めします。リビジョン番号を取得するには、このプラグインにpom.xmlで設定されたSCMプラグインが必要です。

  3. この設定は、アーティファクトを変換または名前を変更するプラグイン(私のケースでは、それはmaven-shade-pluginでした - それが生成するソースjarの1つに適切なリビジョン番号が含まれていませんでした)

+0

どのように動作させましたか?テンプレート変数 'git.commit.id.describe-short'に値がありません – Renann

+0

'git-commit-id-plugin'定義では、実行フェーズを 'validate'に変更したので、アーティファクトがパッケージ化されているときに、リビジョン番号プロパティはすでに使用可能です。 – user3078523

+0

リソースフィルタリングは、このプラグインが機能するために重要ですが、省略しないでください! ( ' true') – naXa

関連する問題