Подтвердить что ты не робот

Как полностью очистить, повторно разрешить и перестроить проект Scala sbt-management в IDEA?

TL; DR:. Как полностью скомпилировать все зависимости в IntelliJ при изменении файлов SBT.

У меня есть проект проекта SBT в IntelliJ. По большей части, если работает как шарм, но для меня это очень больно, чтобы изменить версию зависимостей и компиляторов.

Что я надеюсь сделать, это обновить мой файл SBT и щелкнуть что-то вроде чистого проекта в IntelliJ, чтобы он обновился.

Лучший пункт меню, который я нашел, - это проект перестроения. Он читает новые зависимости, но сохраняет старые, поэтому внешние библиотеки содержат несколько версий Scala runtime и сторонних библиотек.

Чтобы обойти это, я могу закрыть IntelliJ и удалить все файлы в .idea/libraries. Когда я перезапущу IntelliJ, он повторно разрешит зависимости. Он работает, но ручное удаление файлов метаданных указывает на то, что я делаю неправильную вещь.

4b9b3361

Ответ 1

Чтобы обновить IntelliJ после изменений, внесенных в файлы *.sbt:

  • Откройте панель проекта SBT (просмотр меню/инструмент WIndows/SBT)
  • Щелкните правой кнопкой мыши на проекте SBT
  • Выберите Обновить внешний проект

введите описание изображения здесь

Ответ 2

Когда вы сохраняете файл SBT, IntelliJ IDEA обычно обновляет проект. Но если это не так, вы можете сделать это вручную.

В панели SBT есть кнопка "Обновить все кнопки SBT":

введите описание изображения здесь введите описание изображения здесь

В связи с тем, что IDEA все еще запутался, не найдя только что добавленные пакеты:

В меню "Файл":

Invalidate Cache ScreenShot

Это довольно большой молот, требующий перезагрузки приложения, и многоминутная перестройка индекса IntelliSense. Но иногда это единственное, что позволит IDEA распознать ваши новые пакеты SBT.

Ответ 3

Случилось со мной раньше, и да, это PITA.

То, что я обычно делаю, - это вручную удалить зависимости из проекта, все из них, а затем позволить sbt повторно импортировать то, что на самом деле необходимо. Не делайте этого в пользовательском интерфейсе, так как даже имея множественный выбор, попросите подтверждение для КАЖДОЙ зависимости! (вы нажмете "Да, я уверен" в течение часа) вместо этого перейдите и удалите непосредственно из файла проекта .iml в каталоге .idea/modules.

Ответ 4

попробуйте выполнить следующие шаги:

  • закрыть IntelliJ
  • резервная копия всей папки проекта
  • удалить папку .idea
  • удалить целевую папку
  • удалить папку проекта/цели
  • повторно открыть IntelliJ и импортировать как проект sbt

Обратите внимание, что это только для проектов SBT

Ответ 5

Еще один тяжелый молоток, но, кажется, работает.

  1. Закрыть IntelliJ
  2. Удалить папку .idea
  3. Импортировать приложение из существующих источников

Ответ 6

Я использовал разные версии sbt и scala для разных projcts, и IntelJi каким-то образом запутался. Я могу решить эту проблему, удалив папки кэша sbt и ivy2:

rm -rf ~/.ivy2
rm -rf ~/.sbt

Ответ 7

Согласитесь, что PITA. Ничто не помогло мне (я попробовал "Invalidate/Restart", удалив файлы из ".idea/libraries" и перезапустив).

Единственный способ преодолеть проблему для меня - это вручную удалить связанные с проектом папки из кеша IntelliJIdea. Я удалил эти папки из следующих мест (я использую OSX и IntelliJ-Idea 14):

  • /Users/{UserName}/Library/кэши/IntelliJIdea14/составитель/{ProjectName}
  • /Users/{UserName}/Library/кэши/IntelliJIdea14/компиляции/сервер {ProjectName}

Это помогло мне, надеюсь, что это сэкономит время для кого-то.

Ответ 8

Если вы используете активатор через терминал/оболочку/командную строку или оболочку sbt, используйте следующую команду:

activator clean

Это должно помочь перезагрузить вещи, и в следующий раз, когда вы запустите или скомпилируете, он должен пройти через это с нуля.

Ответ 9

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.

Ответ 10

Что сработало для меня, было:

1) Закрыть IntelliJ

2) удалите .idea/libraries внутренние элементы

3) Запустите IntelliJ

4) щелкните правой кнопкой мыши pom.xml Maven > Reimport

После этого в Внешних библиотеках не было старых версий и дубликатов библиотек.