Ответ 1
Чтобы обновить IntelliJ после изменений, внесенных в файлы *.sbt:
- Откройте панель проекта SBT (просмотр меню/инструмент WIndows/SBT)
- Щелкните правой кнопкой мыши на проекте SBT
- Выберите Обновить внешний проект
TL; DR:. Как полностью скомпилировать все зависимости в IntelliJ при изменении файлов SBT.
У меня есть проект проекта SBT в IntelliJ. По большей части, если работает как шарм, но для меня это очень больно, чтобы изменить версию зависимостей и компиляторов.
Что я надеюсь сделать, это обновить мой файл SBT и щелкнуть что-то вроде чистого проекта в IntelliJ, чтобы он обновился.
Лучший пункт меню, который я нашел, - это проект перестроения. Он читает новые зависимости, но сохраняет старые, поэтому внешние библиотеки содержат несколько версий Scala runtime и сторонних библиотек.
Чтобы обойти это, я могу закрыть IntelliJ и удалить все файлы в .idea/libraries
. Когда я перезапущу IntelliJ, он повторно разрешит зависимости. Он работает, но ручное удаление файлов метаданных указывает на то, что я делаю неправильную вещь.
Чтобы обновить IntelliJ после изменений, внесенных в файлы *.sbt:
Когда вы сохраняете файл SBT, IntelliJ IDEA обычно обновляет проект. Но если это не так, вы можете сделать это вручную.
В панели SBT есть кнопка "Обновить все кнопки SBT":
В связи с тем, что IDEA все еще запутался, не найдя только что добавленные пакеты:
В меню "Файл":
Это довольно большой молот, требующий перезагрузки приложения, и многоминутная перестройка индекса IntelliSense. Но иногда это единственное, что позволит IDEA распознать ваши новые пакеты SBT.
Случилось со мной раньше, и да, это PITA.
То, что я обычно делаю, - это вручную удалить зависимости из проекта, все из них, а затем позволить sbt повторно импортировать то, что на самом деле необходимо. Не делайте этого в пользовательском интерфейсе, так как даже имея множественный выбор, попросите подтверждение для КАЖДОЙ зависимости! (вы нажмете "Да, я уверен" в течение часа) вместо этого перейдите и удалите непосредственно из файла проекта .iml
в каталоге .idea/modules
.
попробуйте выполнить следующие шаги:
Обратите внимание, что это только для проектов SBT
Еще один тяжелый молоток, но, кажется, работает.
.idea
Я использовал разные версии sbt и scala для разных projcts, и IntelJi каким-то образом запутался. Я могу решить эту проблему, удалив папки кэша sbt
и ivy2
:
rm -rf ~/.ivy2
rm -rf ~/.sbt
Согласитесь, что PITA. Ничто не помогло мне (я попробовал "Invalidate/Restart", удалив файлы из ".idea/libraries" и перезапустив).
Единственный способ преодолеть проблему для меня - это вручную удалить связанные с проектом папки из кеша IntelliJIdea. Я удалил эти папки из следующих мест (я использую OSX и IntelliJ-Idea 14):
Это помогло мне, надеюсь, что это сэкономит время для кого-то.
Если вы используете активатор через терминал/оболочку/командную строку или оболочку sbt, используйте следующую команду:
activator clean
Это должно помочь перезагрузить вещи, и в следующий раз, когда вы запустите или скомпилируете, он должен пройти через это с нуля.
IDEA 2016.2.4
Ни один из этих решений не работал у меня.
**** ПРЕЖДЕ ЧЕМ ВЫ ПОПРОБУЙТЕ ЛЮБОЙ ВЫШЕ. СДЕЛАТЬ РЕЗЕРВУЮ ПРОЕКТА SBT/IDEA ВОПРОС *****
Если я обновил 'build.sbt', то внешние зависимые библиотеки в представлении проекта не обновились. Более того, структура проекта по-прежнему показывает старые зависимости. Независимо от того, что я пытался, IDEA не обновлялся.
Единственный способ получить частичное восстановление - скопировать папку ".idea" с другой машины. Внедрение плагина SBT **** ed! Я предварительно удалил папку ".idea/libraries", а затем IDEA не восстановил эту папку. Я много раз пытался импортировать проект.
Очень плохо : (
ДОБАВЛЕНИЕ: Мне удалось запустить мой проект. Я думаю, что SBT с IDEA больше не виноват. Возможно, возможно, что мой кеш Apache Ivy 2 мог быть поврежден. Поэтому я выполнил следующие команды:
$ rm -rf ~/.ivy2/cache/org.scalatest/scalatest_2.11/*
$ rm -rf ~/.ivy2/cache/org.scalactic/scalactic_2.11/*
Перезапуск IDEA с недействительным кешем в раскрывающемся меню файла. Это, похоже, вызвало некоторые внутренние действия в IDEA и SBT. Я также попытался вручную добавить JARs в среду IDE, но он был запутан. Мораль этой истории - ежедневно работать на двух разных ноутбуках и обновлять их.
Также выполняется двойная проверка SBT из командной строки. Я использовал 0.13.12
$ sbt about
$ sbt clean
$ sbt test
Также повторите проверку с помощью модуля зависимостей SBT.
Что сработало для меня, было:
1) Закрыть IntelliJ
2) удалите .idea/libraries
внутренние элементы
3) Запустите IntelliJ
4) щелкните правой кнопкой мыши pom.xml Maven > Reimport
После этого в Внешних библиотеках не было старых версий и дубликатов библиотек.