2016-11-05 12 views
2

現在、私のアプリケーション用のマイクロサービスベースのアーキテクチャを開発中です。私はmaven deployコマンドとmaven docker pluginを使ってドッカーハブに簡単にデプロイすることができるので、多くのサービスを持つmavenマルチモジュールプロジェクトを持っています。buildnumber-maven-pluginで最後に変更されたsvnリビジョン番号を取得します。

でも、ドッカーのイメージタグはプロジェクトバージョン番号に基づいていますが、私はリポジトリの最後に変更されたリビジョン番号を付けてタグ付けしたいと考えています。当分の間からは、私はちょうどbuildnumber-maven-pluginを使用して、マニフェストのエントリとしてこのフィールドを追加しようとしています:

はのは、それが私のマルチモジュールプロジェクトだとしましょう:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
... 

    <modules> 
     <module>module-a</module> 
     <module>module-b</module> 
    </modules> 

... 

</project> 

とモジュール-でしょうのためのモデル:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    ... 


    <scm> 
     <connection>scm:svn:http://myrepo.com/svn/application/module-a</connection> 
    </scm> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>buildnumber-maven-plugin</artifactId> 
       <version>1.4</version> 
       <executions> 
        <execution> 
         <phase>validate</phase> 
         <goals> 
          <goal>create</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <doCheck>false</doCheck> 
        <doUpdate>true</doUpdate> 
        <useLastCommittedRevision>true</useLastCommittedRevision> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifestEntries> 
          <SCM-Revision>${buildNumber}</SCM-Revision> 
         </manifestEntries> 
        </archive> 
       </configuration> 
      </plugin> 
      .... 
     </plugins> 
    </build> 

    <dependencies> 
     ... 
    </dependencies> 

</project> 

問題は、{}はBuildNumberをリポジトリにしていないscm:svn:http://myrepo.com/svn/application/module-a場所に作られた最後のコミットを参照するものです私の作業コピー数、と評価されていることです。

enter image description here

私は何をしたいがために作られた最後の真の変化を指し、3248取り出すためにされたモジュールを-A:私は亀からモジュール-Aの​​プロパティを表示するとき、それをよりよく説明するために、私はこれを持っています、3257(作業コピー)の代わりに、これは私がプラグインから得ているものです。そうすれば、dockerプラグインは別のイメージタグであるかどうかを知ることができ、リポジトリのモジュールが変更された場合にのみプッシュできます。

+1

私が理解していることから、私はおそらく同じ[質問](https://github.com/mojohaus/buildnumber-maven-plugin/issues/66)を持っています。 – Moreaki

答えて

1

私はあなたがここに逃した唯一の事は、私はそれがtrueされるべきだと思う

<doCheck>false</doCheck> 

だと思います。

+0

それを指摘してくれてありがとう。残念ながら、私は今すぐ環境を設定する必要はありません、できるだけ早く試してみましょう。 –

1
<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>buildnumber-maven-plugin</artifactId> 
    <version>1.3</version> 
    <executions> 
     <execution> 
      <phase>validate</phase> 
      <goals> 
       <goal>create</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <doCheck>false</doCheck> 
     <doUpdate>true</doUpdate> 
     <useLastCommittedRevision>true</useLastCommittedRevision> 
    </configuration> 
</plugin> 

これは私に役立ちました。

+0

共有いただきありがとうございます! –

関連する問題