ツール

IntellJでGradleのキャッシュがクリアされない時に試したい2つの方法

記事内に商品プロモーションを含む場合があります

「IntelliJ のモジュールで参照しているライブラリが更新されない」

「いや、そもそもローカルから gradle コマンドを実行しても同じ挙動だな」

こんな時は Gradle のキャッシュを疑いたくなるのですが、キャッシュ削除にはいくつかの方法が存在します。

どれが正解かは賛否がありますが、私のオススメは 2 点。

・キャッシュのディレクトリ削除
・IntelliJ の Invalidate caches

今回は、この 2 パターンのやり方を紹介します。

キャッシュのディレクトリ削除

Gradle のキャッシュは以下のディレクトリに作られます。

~/.gradle/caches/

このディレクトリには、さらにいくつかのディレクトリが存在し、どこに目的のキャッシュがあるのかわかりにくいです。

下記は一例ですが、多くの場合は「modules-2」のディレクトリに該当します。

・7.1
・jars-9
・journal-1
・modules-2
・transforms-3

IntellJ のメニューで、「ファイル」「プロジェクト構造」「ライブラリ」まで辿れば、該当のファイルを探し当てることが可能。

これは「gson」のライブラリの例ですが、右側にファイルのパスが表示されています。

IntellJでGradleのキャッシュがクリアされない時に試したい2つの方法

ただ、削除したいキャッシュがいくつかある場合は面倒ですよね。

ということで、大元のディレクトリごと削除してスッキリするのも 1 つの手。

IntellJ を終了させて、ディレクトリ削除が終わったら再度起動しましょう。

プロジェクトの起動時にライブラリのダウンロードや読み込みでそこそこ時間が掛かりますので、時間に余裕がある時にオススメです。

Invalidate caches

「いやいや小さなプロジェクトならいいけど、大きなプロジェクトが複数あったらめっちゃ時間かかるよ」

そうなんです。

キャッシュのディレクトリを削除すると気持ちいいのですが、マイクロサービス化されてたりしたら必然的にプロジェクトは増えます。

プロジェクト起動時に PC のファンが唸り始めるほど CPU 負荷が高まり、作業に支障が出ちゃいますよね・・・。

ということで、IntelliJ の Invalidate caches を利用します。

IntelliJ IDEA caches a great number of files for all projects that you have ever worked with in this IDE version, therefore the system cache may become overloaded. Sometimes the caches will never be needed again, for example, if you work with frequent short-term projects.

When you invalidate the cache, IntelliJ IDEA removes the cache files for all projects ever run in the current version of the IDE. The files will be recreated the next time you open these projects. The IDE also rebuilds the projects if they are built with the native IntelliJ IDEA builder.

メインメニューの「ファイル」「キャッシュの破棄」を選択します。
(最近、日本語化してしまったので英語表記の方は置き換えてください)

IntellJでGradleのキャッシュがクリアされない時に試したい2つの方法

破棄したいキャッシュの種類を選択して IDE を再起動すれば完了です。

IntellJでGradleのキャッシュがクリアされない時に試したい2つの方法

まとめ

IntelliJ を使っていて、Gradle のキャッシュが邪魔になった時の対処法を紹介してきました。

・キャッシュのディレクトリ削除
・IntelliJ の Invalidate caches

もっと最適な方法があるかもしれませんが、この 2 つで何年もやってこれているので問題ないかなと。

まずは「Invalidate caches」を試してみることをオススメします。