2016-08-09 7 views
1

長いタイトルは残念ながら申し訳ありません。私はマルチモジュールのMavenプロジェクトに取り組んでいます。今、プロジェクトは親バージョンである1つのバージョンしかありません。また、すべてのモジュールが1つずつインストールされるので、「mvn install」に時間がかかります。私の目的は、変更されたモジュールとそれに依存するモジュールだけをインストールすることです。そして、私は変更された親のポームのプロパティであるモジュールのバージョンを変更したいと思います。変更されたモジュールのみをmavenプロジェクトにインストールし、変更されたモジュールのバージョン番号を更新する。

はこれまでのところ、私は以下のコマンドを介して、変更されたファイルを取得します(私の目的は、HEADの差分の相対を取得する代わりに、コマンドラインを介してコミットIDを取ることですが、開発目的のために、HEADは結構です):

git diff HEAD | grep '^diff --git [A-Za-z0-9 ]*' | cut -d ' ' -f 3 | cut -c 3- 

は、変更されたファイルの相対パス(プロジェクトの親ディレクトリに従って)を取得します。この情報を使って、変更されたモジュールを検出し、親pom.xmlファイルのバージョンを変更します(親pomのプロパティとして設定されています)。

私はこれをすべてpython bashスクリプトで行います。

私はコマンドで変更された結節をインストールしたい:私は今、解決できない何

mvn -pl module1,module2.. -amd install 

は、私は次のエラーを取得するためにいくつかのモジュールのために、-plコマンドは動作しませんということです。

Failed to execute goal on project bla-bla: Could not resolve dependencies for project com.xyz.bla:bla-bla:jar:2.10.0: 

com.xyz.bla:bla-some_other_bla:${bla-someother-bla-version} 
012:私はデバッグログに上記のコマンドを実行

私はその問題はおそらく理解していないので、親のポンポンを評価していないのMavenされて実現し、有効

これは、子pomのバージョンプロパティを解決できないため、ローカルリポジトリでjarが見つからず、インストールを完了できないことを意味します。

この方法は、私が達成したいものと、この依存関係の問題を解決する方法を達成するための良い方法であるかどうかを知りたいと思います。あなたは両方を知っている場合は、両方の明記してください、私は仕事を完了するために、限られた時間を持っているので、私は現在のソリューションと推測する:)

注:

  • 私はhttps://github.com/nwiechmann/scm-changes-maven-extensionを使用しようとしたが失敗していますそれを働かせる。

  • mvn:release plugin:updateversionsは複数のバージョンの更新をサポートしていないため、これはおそらくオプションではありません。

すべて最高です。

答えて

0

マルチモジュールビルドのアイデアは、すべてのモジュールに対して単一のバージョン番号しか持たないため、すべてのモジュールが同時に解放されるためです。

thisで変更できるモジュールだけを改善してビルドすることができます。また、特にバージョン番号として使用できるプロパティの場合はthis might helpです。

+0

お返事ありがとうございます。私はプロジェクトのリーダーにバージョン管理について尋ねました。彼は実際にはモジュールは別々にリリースされていると言います。そのため、バージョン番号が異なるようにしたいのです。 – furkee

+0

個別にリリースされている場合は、マルチモジュールビルドが意味をなさないことを意味します... – khmarbaise

関連する問題