Как заставить sbt повторно загружать зависимости, когда поврежден кеш плюща
когда кеш плюща поврежден, я получил следующую ошибку от sbt
[ошибка] неразрешенная зависимость: commons-codeС# commons-codec; 1.10: конфигурация не найдена в commons-codeС# commons-codec; 1.10: 'master (compile)'. Отсутствует конфигурация: 'compile'. Это требовалось от com.typesafe.play # play_2.11; 2.4.3 компиляция
если я удаляю папку commons-codec в кэше ivy и запускаю sbt update, sbt повторно загрузит зависимости, и все будет хорошо.
Есть ли способ сообщить sbt об удалении папки и повторной загрузке зависимостей автоматически?
Ответы
Ответ 1
Это довольно просто, просто
rm -fr ~/.ivy2/cache # Or mv ~/.ivy2/cache ~/.ivy2/cache_bk
sbt update
Наконец, если вы находитесь в Intellij, File → Invalidate Caches/Restart.
Я только что сделал то же самое 20 минут назад. Наверное, тоже неплохо. Я просто сохранил довольно большой кусок пространства на моем mac.
Atom:~ me$ du -skh ./.iv*
349M ./.ivy2
1.0G ./.ivy2_bak
Ответ 2
Попробуйте удалить конкретную зависимость, которая вызывает проблему:
rm -rf ~/.ivy2/cache/commons-codec
Ответ 3
# empty the ivy cache if you have good network
# rm -rfv ~/.ivy2/cache/*
# or even better just backup it to sync it later on ...
# mv ~/.ivy2/cache ~/.ivy2/cache.'date "+%Y%m%d_%H%M%S'.bak
# remove all sbt lock files
find ~/.sbt ~/.ivy2 -name "*.lock" -print -delete
find ~/.sbt ~/.ivy2 -name "ivydata-*.properties" -print -delete
# remove all the class files
rm -fvr ~/.sbt/1.0/plugins/target
rm -fvr ~/.sbt/1.0/plugins/project/target
rm -fvr ~/.sbt/1.0/target
rm -fvr ~/.sbt/0.13/plugins/target
rm -fvr ~/.sbt/0.13/plugins/project/target
rm -fvr ~/.sbt/0.13/target
rm -fvr ./project/target
rm -fvr ./project/project/target
sbt clean update