(Timeout waiting to lock artifact cache. It is currently in use by another Gradle instance.)
複数のプロジェクトを行き来したりして、Gradleのバージョンが違うデーモンを立ち上げたりしてるとこんなエラーに遭遇する。
* What went wrong:
Error resolving plugin [id: 'org.springframework.boot', version: '2.6.0-SNAPSHOT']
> Could not resolve all dependencies for configuration 'detachedConfiguration1'.
> Timeout waiting to lock artifact cache (/Users/macmini/.gradle/caches/modules-2). It is currently in use by another Gradle instance.
Owner PID: 34626
Our PID: 34600
Owner Operation:
Our operation:
Lock file: /Users/macmini/.gradle/caches/modules-2/modules-2.lock
複数のデーモンがかちあってBootRun出来ない状態になっている。
./gradlew –stop はデーモンを停止する
まずは普通にデーモンを停止させる。
しかし、全てののデーモンが止まるわけではない。別の方法を探そう。
$ ./gradlew --stop Stopping Daemon(s) 1 Daemon stopped
pkill -f ‘.*GradleDaemon.*’ はプロセスを停止させる
pkillコマンドを利用してマッチしたすべてのプロセスを停止させる。
$ pkill -f '.*GradleDaemon.*'
-f オプションはfullの略。
'.*GradleDaemon.*'で一致するすべてのプロセスをkill出来るため、余計なことを考えずに全デーモンが停止する。
これで良さそう。
~/.zshrc に登録しておく
便利なので適当に~/.zshrcに登録しておく
$ echo "alias pkgdall=\"pkill -f '.*GradleDaemon.*'"\" >> ~/.zshrc $ source ~/.zshrc $ pkgdall // エイリアスはお好みで
これで手軽に全てのGradleのデーモンをkill出来るようになりました。
環境
- Mac OS Big Sur 11.6
- zsh 5.8
参考
Kill all Gradle Daemons Regardless Version? / stackoverflow


コメント