Maven プロジェクト ディレクトリで次のコマンドを実行しています。
クリーンターゲット
mvn クリーン -U
プロジェクトが依存するローカル ウェアハウス内の Maven パッケージをクリーンアップする
mvn 依存関係:ローカル リポジトリのパージ
その特定のプロジェクト (つまり、私がいるディレクトリ) のローカル リポジトリに既に存在する依存関係をすべて削除 (そして再ダウンロード) するのでしょうか、 それともローカル リポジトリのコンテンツ全体を 削除するのでしょうか?
ベストアンサー
デフォルトでは、 purge-local-repository は、 実行されるプロジェクトのすべての依存関係 (推移的なものを含む) のバージョンに関連付けられたすべてのファイルをローカル リポジトリから削除します。
ローカル リポジトリからプロジェクトの依存関係を削除し、必要に応じて依存関係を再解決します。
関係する要因は次のとおりです。
- デフォルトでは、プラグインは推移的な依存関係をクリーンアップします。これは、 actTransitively を介して構成可能です。
- デフォルトでは、ローカル リポジトリからパージされたすべてのアーティファクトが再解決されます。これは、 reResolve を介して構成可能です。
- ローカル リポジトリからパージされた実際のファイルは、パージされたアーティファクトのバージョンに関連付けられたすべてのファイルに対応します。たとえば、依存関係
foo:bar:1.0
がクリアされると、foo/bar/1.0/*
パスの下にあるすべてのファイルが削除されます。これは、 resolutionFuzziness パラメーター (デフォルト値) を介して構成 できますversion
。 artifactId
値を指定すると、クリーンアップされたアーティファクトのアーティファクト ID パスにあるすべてのファイルがクリアされます。上の例では、foo/bar/**
以下のすべてのファイルがパージされます (したがって、すべてのバージョンが削除されます)。groupId
値を指定すると、パージするアーティファクトのグループ ID へのパスにあるすべてのファイルがパージされます。上の例では、以下foo/**
のすべてのファイルがパージされます (したがって、すべてのアーティファクト ID のすべてのバージョンが削除されます)。file
値を指定すると、クリアされるアーティファクトのファイルのみがクリーンアップされます。上の例では、ファイルのみがbar-1.0.jar*
削除されます (これには、ファイルが持っているファイルも含まれますsha1
)。関連する POM ファイルはクリーンアップされません。- list を使用してプロジェクトのすべての依存関係のリストを出力すると、どのアーティファクトがクリーンアップされるかを確認できます 。目標:
推移的な依存関係をクリアしない場合は、オプションで このコマンドにexcludeTransitive を追加します。mvn dependency:list
デモ: