現在、私のアプリケーション用のマイクロサービスベースのアーキテクチャを開発中です。私は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
場所に作られた最後のコミットを参照するものです私の作業コピー数、と評価されていることです。
私は何をしたいがために作られた最後の真の変化を指し、3248取り出すためにされたモジュールを-A:私は亀からモジュール-Aのプロパティを表示するとき、それをよりよく説明するために、私はこれを持っています、3257(作業コピー)の代わりに、これは私がプラグインから得ているものです。そうすれば、dockerプラグインは別のイメージタグであるかどうかを知ることができ、リポジトリのモジュールが変更された場合にのみプッシュできます。
私が理解していることから、私はおそらく同じ[質問](https://github.com/mojohaus/buildnumber-maven-plugin/issues/66)を持っています。 – Moreaki