2017-12-17 3 views
1

私はjgitver libraryを使って、Gitリポジトリの状態を使ってsemverを自動的に生成しています。jgitverプラグイン、バージョンをpomに取得

モジュールが相互に依存しているマルチモジュールプロジェクトがあります。つまり、あるモジュールに変更を加えると、変更されたモジュールの新しいバージョンを参照する必要があります。

すべてのモジュールが同じGitリポジトリにあるため、Gitを変更するとすべてのモジュールのバージョンが変更されます。以下の私のプロジェクト構造の一例である

.git (Common repository) 
module1 
common-module 
pom.xml (Parent POM) 

後にはjgitverによって生成された任意の時点のバージョンはmodule1common-moduleのために同じになる時以来、私は、依存モジュール

<-- POM of module1, includes common-module--> 

    <dependency> 
     <groupId> com.test</groupId> 
     <artifactId>common-module</artifactId> 
     <version>1.0.0</version> <!-- version generated by jgitver --> 
    </dependency> 

が含まれているかの一例であり、同じGitリポジトリにあるので、私はすべてのモジュールにバージョンをハードコードしたくありません。バージョンが変更された場合、私は手動でcommon-module依存関係のすべてのモジュールのバージョンを変更する必要があります。

jgitverによって生成された現在のバージョンを参照するために使用できる${project.version}のような変数はありますか?

私は

<dependency> 
    <groupId> com.test</groupId> 
    <artifactId>common-module</artifactId> 
    <version>${JGITVER_GENERATED_VERSION_VARIABLE}</version> <!-- version generated by jgitver --> 
</dependency> 

答えて

0

以下のようmodule1を構成するために望んでいることは0.2.0-alpha2リリース以来計算バージョンjgitver.calculated_versionを指定するために使用することができるプロパティがあり判明します。しかし、同じ0.2.0-alpha2リリース以来、おそらく必要ないでしょう。

計算されたバージョンを依存関係のバージョンとして指定したいサブモジュールは、project.versionとします。静的値は0のままで、プロジェクトがmavenを使用して構築されている場合は、project.versionが解決されて値が修正されます。プロジェクトは、サブモジュールのディレクトリ自体から構築されている場合

は私がMulti module project: Building only a sub module does not resolve versions for deps

project.versionは限りそれは親から構築されているプロジェクトだとして働いて、次の問題に直面した後、この出くわし、それは動作しません。 project.version0に解決されるため、エラーcommon-module-0.jarが見つかりません。問題は終了しており、jgitver0.2.0-alpha2以降のサブモジュールでも動作するはずです。ただし、特定のバージョンのMavenでは動作しません。

プロジェクトのgithubページには、最低バージョンのmavenが3.3.2 Ref:jgitver-maven-plugin requires at least maven-3.3.2 to work correctly.であることが記載されています。しかし、私にとってはjgitver 1.1.4は、3.3.5とは動作しません。サブモジュールのみをビルドするときには、ビルドがエラーcommon-module-0に残ります。 maven 3.3.9で動作することを確認できます。私は2つの異なるバージョンのMavenを使って2つの異なるマシンから作業していたので、それを知りました。私は現在のバージョン3.5.2にmavenを更新しており、サブモジュールから正常に動作します。

注:私のIDE STS 3.8.4/Eclipse Mars.2 (4.5.2)project.versionからプロジェクトの計算バージョンを解決することはできないようだと、それはcommon-module-0を解決しようとします。このプロジェクトがEclipseで公開されている場合に限り解決されます。それがうまくいくと思われるかもしれません。

関連する問題