1. ホーム
  2. gradle

[解決済み] gradleに依存関係を強制的に再ダウンロードさせるには?

2022-03-21 07:33:20

質問

gradleにリポジトリから依存関係を再ダウンロードするように指示する方法は?

解決方法は?

一般的には、コマンドラインオプションでキャッシュの依存関係を更新することができます。 --refresh-dependencies . また、キャッシュされたファイルを削除するには ~/.gradle/caches . 次のビルドで、Gradleはそれらを再びダウンロードしようとするでしょう。

具体的なユースケースは何ですか?動的依存性バージョンまたはSNAPSHOTバージョンを使用しますか?


Unixシステムでは、Gradleが使用してダウンロードした既存のアーティファクト(アーティファクトとメタデータ)をすべて削除することができます。

rm -rf $HOME/.gradle/caches/


Refresh-dependenciesは常にすべてのアーティファクトを再ダウンロードするわけではないことに注意してください。Gradle ユーザーガイドより。 依存関係を更新する :

Refresh-dependenciesオプションは、解決されたモジュールとアーティファクトのキャッシュされたエントリーをすべて無視するようにGradleに指示します。設定されたすべてのリポジトリに対して、ダイナミックバージョンの再計算、モジュールのリフレッシュ、およびアーティファクトのダウンロードを伴う、新たな解決が実行されます。しかし、可能であれば、Gradleは再度ダウンロードする前に、以前にダウンロードしたアーティファクトが有効であるかどうかをチェックします。これは、リポジトリで公開されている SHA1 値と、既存のダウンロード済み成果物の SHA1 値を比較することで行われます。

[...]

よくある誤解として、--refresh-dependencies を使うと依存関係を強制的にダウンロードさせられると思われているようです。これは事実ではありません。Gradle は、動的依存関係をリフレッシュするために厳密に必要なことだけを実行します。これは、新しいリストやメタデータファイル、あるいはアーティファクトのダウンロードを含むかもしれませんが、何も変更がなければ、その影響は最小限です。