web-dev-qa-db-ja.com

Mavenを使用してリリースの依存関係を強制的に再ダウンロードする

私はXに依存するプロジェクトに取り組んでいます。XはYに依存しています。

以前は、プロジェクトのPOMに明示的にYを含めていました。しかし、それは使用されておらず、物事をきれいにするために、代わりに依存関係としてXのpomに追加しました。 Xはリリースの依存関係としてマークされます。

問題は、プロジェクトのPOMからYを削除してXのPOMに追加した後、プロジェクトがmvn -U clean packageでそれを取得していないことです。 -Uはスナップショットを更新しますが、リリースは更新しません。

〜/ .m2/repositoryディレクトリを削除せずに XのPOMの再ダウンロードを強制するにはどうすればよいですか?また、dependency:purge-local-repositoryを実行しようとしましたが、動作しませんでした。

110
volni

Mavenに依存関係を再ダウンロードさせることはできませんが、代わりに行うことができるのは、mvn dependency:purge-local-repositoryを使用して誤ってダウンロードされた依存関係をパージすることです

参照: http://maven.Apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

138
Ali Tokmen

〜/ .m2/repositoryを削除しただけで、再ダウンロードが強制されました;)

49
Ryan Angilly

次のコマンドが役立つと思います!


mvn -U clean install
34
Richard

ALi Tokmenの回答に感謝します。次のコマンドを使用して、特定のローカル依存関係を強制的に削除できました。

mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils

これにより、.m2/repositoryからutilsが削除され、mvn clean installの実行時に常にutils JAR依存関係が再ダウンロードされます。

18
skyfish

プロジェクトを右クリック-> Maven->プロジェクトを更新し、スクリーンショットのようにチェックボックスをオンにします。リリースも更新されます:)

enter image description here

14
nanosoft

質問に「maven-2」というタグを付けました。この問題を解決するために、Maven 3で-Uオプションが追加されました。

アップグレードをお勧めします。

8
Mark O'Connor
mvn clean install -U

-Uは、依存関係の強制更新を意味します。

Cleanまたは-Uなしで単一の依存関係を更新する場合は、ローカルリポジトリから削除してビルドするだけです。

7
ArpitBora

Xに追加したとき、Xのバージョン番号、つまりX-1.2をインクリメントしているはずです。

6
crowne

すべての依存関係を強制的にダウンロードする場合は、mavenリポジトリ全体を再初期化することができます。 この記事 で既に説明したように、次を使用できます。

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
4
Bart den Haak

〜/ .m2/repository ...../actual_pathを削除するだけです。無効なLOCは削除されたjarファイルを強制的に再ダウンロードするため、無効なLOCが来ます。 リポジトリフォルダー全体を削除しない代わりに、エラーが発生している場所から特定のフォルダーを削除します。

2
Saurabh Oza

XのグループIDがわかっている場合、このコマンドを使用して、Xとその依存関係をすべて再ダウンロードできます。

mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x

dependency:purge-local-repositoryの使用を提案する他の回答と同じことを行いますが、Xに関連するすべてを削除して再ダウンロードするだけです。

0
smac89

上記の回答のほとんどが問題を解決します。

ただし、IntelliJを使用し、自動的に修正するだけの場合は、Mavenの設定に移動してください。

ビルド、実行、展開->ビルドツール-> Maven

enter image description here

オフライン作業を無効にする

スナップショットを常に更新する(必要に応じて切り替える)を有効にする