1. 概要

この短いチュートリアルでは、ローカルのMavenキャッシュをクリアする方法を探ります。 ディスクスペースを節約したり、参照しなくなったアーティファクトをクリアしたりするために、これを実行することをお勧めします。

まず、手動でキャッシュをクリアし、ディレクトリを物理的に削除します。 次に、利用可能なさまざまなプラグインオプションのいくつかを使用して、Maven依存関係プラグインを使用してキャッシュをクリアします。

2. ローカルキャッシュディレクトリの削除

ローカルMavenリポジトリは、オペレーティングシステムに基づいてさまざまな場所に保存されます。 また、。 m2 ディレクトリは非表示になっている可能性があるため、表示するにはディレクトリのプロパティを変更する必要があります。

Windowsでは、デフォルトの場所は次のとおりです。

C:\Users\<user_name>\.m2

そしてMacの場合:

/Users/<user_name>/.m2

Linuxベースのシステムの場合:

/home/<user_name>/.m2

ディレクトリを見つけたら、フォルダ .m2 / repository。を削除するだけです。MacOSやLinuxなどのUnixベースのシステムでは、次の1つのコマンドでディレクトリを削除できます。

rm -rf ~/.m2/repository

キャッシュディレクトリがデフォルトの場所にない場合は、Mavenヘルププラグインを使用して次の場所を見つけることができます。

mvn help:evaluate -Dexpression=settings.localRepository -q -DforceStdout

3. Maven依存関係プラグインの使用

キャッシュディレクトリを直接削除する代わりに、 Maven DependencyPluginpurge-local-repositoryゴールで使用できます。

まず、Mavenプロジェクトのルートに移動する必要があります。 次に、次を実行できます。

mvn dependency:purge-local-repository

追加のフラグなしでこのプラグインを実行すると、依存関係ツリーを解決するために、キャッシュに存在しないアーティファクトがダウンロードされる場合があります。 これは、推移的な依存関係の解決として知られています。 次に、ローカルキャッシュを削除し、最後にアーティファクトを再ダウンロードします。

または、キャッシュを削除し、不足している依存関係を事前にダウンロードする最初のステップを回避するために、フラグ actTransitively =falseを渡すことができます。

mvn dependency:purge-local-repository -DactTransitively=false

最後に、アーティファクトを事前にダウンロードしたり再解決したりせずに、キャッシュをクリアしたい場合

mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false

ここでは、 reResolve = false の追加フラグを渡します。これは、依存関係の再ダウンロードを回避するようにプラグインに指示します。

4. 結論

この短い記事では、ローカルのMavenキャッシュをクリアする2つの方法について説明しました。

まず、ローカルキャッシュディレクトリを手動で空にすることを検討しました。 次に、Maven Dependency Pluginを使用して、目的の結果を達成するためのさまざまなオプションを検討しました。