Как заставить 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