2012-04-06 24 views

答えて

23

リモートリポジトリからすべての依存関係を取得すると、ローカルリポジトリはキャッシュにすぎません。

すべてのキャッシュと同様に、Mavenローカルリポジトリは時には「ダーティ」になることがあります。パラノイアと過度の攻撃の認知された行為では、ビルドマシンでローカルリポジトリをパージするために定期的にcronジョブをスケジュールします。これにより、Nexus Mavenリポジトリとの再同期が強制されます。

+0

強制的な再同期についての追加のヒントの説明と感謝。 – twigmac

+0

mvn -U(update)を使って更新を強制的にチェックするのはなぜですか? – imagineerThat

+0

@imagineerもちろん、キャッシュリセットはビルドが完全にクリーンであることを保証します。依存関係もMavenリポジトリにローカルにキャッシュされている場合は、コストがかかりません。 –

13

リモートリポジトリを介して必要なすべての成果物にアクセスできる場合、ローカルMavenリポジトリを削除することは常に安全です。基本的なMavenプラグイン(コンパイラなど)さえも含め、次のビルドに必要なすべての成果物は、基本的にはリモートリポジトリから取得されます。それでおしまい。

+1

ありがとうございます。私が知る必要があったことでした! – twigmac

2

あなたができることは、ローカルリポジトリ内のファイルを一定期間、たとえば90日間削除するためのcronエントリを追加することです。

find ~/.m2/ -type f -atime +90 -delete && \ 
    find ~/.m2/ -type d -empty -delete 

これにより、キャッシュサイズは、最近使用した成果物だけに抑えられます。

関連する問題