2016-04-22 14 views
0

私は、多くのMavenモジュールを持つ大きなプロジェクトで作業しています。ビルドアーチファクトがローカルリポジトリで利用できないときやビルド直後にビルドが失敗したことを確認する必要があります。リモートMavenリポジトリからのアーティファクトを無視する

今まで私は、ビルドの前にすべての必要な依存関係をダウンロードし、新たに地元のレポにし、オフラインモードでビルドを実行するよりも構築されるアーティファクトを削除しました。

これは醜い回避策であり、私はこのように動作するようにベストプラクティスではありません知っているが、私は他に選択肢がありません。だから私はリモートレポからアーティファクトを無視する簡単な方法があるのか​​、またはMavenに新しくアーティファクトを使用するように指示するのか不思議に思っていました。

EDIT:例

私はスーパーポンポンと2つのモジュールとのプロジェクトを持っています。

現在、スーパーポームの現在のバージョンは2.0.0-SNAPSHOTですが、モジュールはバージョン1.0.0を参照しています。この場合、ビルドは失敗します。しかし、現実には、リモートリポジトリからスーパーポームの1.0.0バージョンをダウンロードするだけです。最悪の場合、ビルドが中断されます。

私はレポと私はほんの数のモジュールに取り組んでいますので、複数回、私のビルドを破ったいくつかの奇妙なバージョンを持っている人々の制御にはいないよので、これは問題があります。

+0

マルチモジュールビルド?モジュール間の依存関係やその他の依存関係について話していますか?あなたはもっと具体的な例を挙げることができますか? – khmarbaise

答えて

0

私の仕事環境では、開発者と公式ビルド用に別々のPOMファイルを作成しました。開発者にとって

、のPOMのみcom.mycompany.myproject.usersようなものを使用して、それらのローカル.m2リポジトリにローカルに開発者が作成することができ、ユーザ固有groupIDsであり指す。防止される$ {ユーザー名}開発者は企業メイベンリポジトリから公式のアーティファクトを取り出すことができません。

officialビルドPOMは、公式のアーティファクトをエンドツーエンドで構築して使用するように、groupIdとしてcom.mycompany.myprojectを使用しました。

開発者が公式アーティファクトとローカルアーティファクトの組み合わせを必要とする場合は、POMファイルをそのまま調整することができます。しかし、公式のアーティファクトの1つでは、ローカルにビルドしているダウンストリームの依存関係が生じた場合、依存関係の問題が発生する可能性があります。問題は、クラスのパッケージングが同じで、Mavenが期待しているものを手に入れられない可能性があるということです。

関連する問題