0

私の状況:いくつかのMavenモジュールを含むプロジェクトがあります。そのうちの1つに変更を加えます。突然、他のモジュールのエラーのために、私のプロジェクトをビルドできなくなったことがわかりました。これを修正するには、SVNUPDATEを実行してプロジェクトを再構築する必要があります。

私の仮定:おそらく、私のモジュールのビルドプロセス中に、アーティファクトの一部は中央リポジトリから取得され、最新バージョンになりますが、他のアーティファクトはまだ古く、ローカルリポジトリから取得されます。

質問:誰かが別のMavenモジュールを更新するたびにプロジェクトを再構築したくありません。自分で再構築せずに、すでに構築されているアーティファクトを中央リポジトリからダウンロードしたい。出来ますか?

4

1 に答える 1

0

ビルドするモジュールをReactorに指示できます。単一のモジュールのみを変更し、ビルドを高速化したい場合は、-pl(プロジェクトの場所)パラメーターをmavenに渡すことができます。例えば:

mvn -pl module-with-changes

これにより、単一のモジュールが構築され、ローカルのMavenリポジトリから他の依存関係を取得するか、Centralからダウンロードします(最新のものは何でも)。とはいえ、プロジェクト全体に対してmvn installをすでに実行していて、他のアーティファクトが中央リポジトリで更新されていない場合、Mavenはローカルアーティファクトを最新のものとして認識し、それらを再ダウンロードしません。

-plパラメーターで発生する可能性のあるもう1つの問題は、プロジェクト内の他のモジュールが、ビルドしているモジュールに依存している場合です。依存モジュールに問題がある場合、依存モデルのみを構築しても問題は発生しません。これを回避するには、-amdを渡すことができます(依存関係も作成します)。このような:

mvn -pl module-with-changes -amd

これにより、module-with-changes+モジュール-with-changesに依存するモジュール+それらの依存関係のビルドがトリガーされます。

Reactorパラメーターの詳細については、http: //www.sonatype.com/people/2009/10/maven-tips-and-tricks-advanced-reactor-options/を参照してください。

于 2012-11-29T16:29:34.673 に答える