2013-07-04 17 views
5

まあ、問題は、ビルド時に依存関係のバージョンを確認し、より新しい依存関係のバージョンがある場合は私に警告してほしいということです(実際には、古いバージョンのモジュールを使用している場合に通知します)。私のMavenのモジュールAには、次の依存関係があります:実際に新しいバージョンの依存関係がリポジトリに存在する場合、Mavenビルドに失敗する方法?

<dependency> 
    <groupId>com.example.mycompany</groupId> 
    <artifactId>commons</artifactId> 
    <version>1.0.3</version> 
</dependency> 

そしてcom.example.mycompany:commonsモジュールはすでに1.0.4バージョンを持つことができます。リポジトリの依存関係のバージョンをチェックし、新しいバージョンがすでに利用可能な場合はビルドに失敗する方法はありますか?

versions-maven-pluginが作ってくれることを願っています。しかし、私は適切な構成を見つけることができません。

+0

あなたは[バージョン-のmaven-pluginの:ディスプレイ依存-アップデート]をチェックしている(http://mojo.codehaus.org/ versions-maven-plugin/examples/display-dependency-updates.html)ゴール?これはレポートを作成するために使用することができ、あなたが好きなものを得るために解析される可能性があります。 – khmarbaise

+0

実際には、以下に述べる@spacetruckerとしてカスタムエンフォーサルールを使用しています。 – revenforv

答えて

3

この問題はmaven-enforcer-pluginで解決できます。 standard rulesの他のメンバーとあなたのニーズが似ていると思われるので、自分自身でcustom ruleを作成してください。

実装しようとしているルールの概念は、の従属関係が最新のである必要があります。このチェックを実装するには、あなたが言及しているバージョン-maven-pluginからインスピレーションを得ることができます。

+0

これは適切なソリューションのようです。ありがとう! – revenforv

+1

@revenforvこのカスタムルールを公開する可能性はありますか?私はそれを自分で使いたいです。 – xnickmx

+0

@xnickmx残念ながら、いいえ。私たちはそのカスタムルールのための時間がなかったので、 "マニュアルチェックとバージョン変更"アプローチを使用することに決めました。 – revenforv

0

あなたがすることができます(安全な仮定である)ソースコントロールと継続的インテグレーションサーバを使用している場合:

  1. が、その後scm:check-local-modificationまたはリリースを使用versions pluginを使用し、それがポンポンに
  2. を変更してみましょうリリースプラグインとしてのプラグインIIRCはローカル修正をチェックします。ここで

最新の親ポンポンをチェックする例を次に示します。

mvn versions:update-parent scm:check-local-modification -DallowSnapshots=false -DgenerateBackupPoms=false