Как заставить IntelliJ IDEA перезагружать зависимости из build.sbt после их изменения?

123

Я использую IntelliJ IDEA 13 (Community Edition) с плагином Scala.

Мой первоначальный импорт существующего проекта Scala с исправной build.sbtработой. Зависимости библиотеки были подобраны IDEA. Дополнительные зависимости, добавленные после первоначального импорта, не были выбраны, хотя я проверил эту auto-importопцию.

Как я могу заставить IDEA перезагрузить зависимости build.sbt?

Дэвид Б.
источник
1
У меня было точно такое же поведение, которое вы описываете, а затем оно начало работать без каких-либо действий. У меня сложилось впечатление, что интеграция sbt сейчас немного запутана, и нам просто нужно набраться терпения.
Николас Ринаудо
У меня все еще не работает (январь 2017 г.).
qu1j0t3

Ответы:

191

Вы можете заставить SBT перезагрузить изменения: откройте окно инструментов SBT (в правой части IDE) и нажмите кнопку обновления.

Если вы используете функцию автоматического импорта, вам необходимо сохранить файл, чтобы принудительно обновить его.

Alefas
источник
16
Вот как открыть окно инструмента SBT: stackoverflow.com/questions/32374193/… (на случай, если кто-то еще не сможет его найти)
Кошик Ачарья,
12

Если плагин «застревает», это помогает сделать кеш недействительным (в меню файла) и перезапустить intellij.

Мэри Джейн
источник
4

По состоянию на 7 декабря 2013 г. вопрос решен. Вам необходимо обновить плагин Scala в IntelliJ IDEA (это относится как к редакциям сообщества, так и к окончательной редакции).

Это ссылка на проблему, открытую на веб-сайте сообщества разработчиков JetBrains: http://devnet.jetbrains.com/thread/451395

Дэвид Риччителли
источник
Это кажется не связанным с исходным вопросом. Ошибка jetbrains говорит: «При создании нового проекта из существующего проекта SBT». Проблема в том, что IntellliJ иногда не получает новейшие библиотеки, даже если включен автоматический импорт. Как указывает @alefas, иногда вам нужно принудительно перезагрузить (даже с плагином Scala с 2018 года).
danio
3

Это может быть связано с неработающей публикацией, org.jetbrains:sbt-structure:latest.integrationкоторая произошла сегодня вечером, около 4 или 5 часов назад. Учитывая, что вашему посту 4 часа ...

Вы можете увидеть активность плюща в idea.log( ~/Library/Logs/IntelliJIdea13или ~/Library/Logs/IdeaIC13в OSX).

[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.jetbrains#sbt-structure;latest.integration: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn]  Note: Some unresolved dependencies have extra attributes.  Check that these dependencies exist with the requested attributes.
[warn]          org.jetbrains:sbt-structure:latest.integration (sbtVersion=0.13, scalaVersion=2.10)

Я открыл билет в JetBrains.

Джеффри Агилера
источник
2
Похоже, это была проблема с Ivy latest.integration после того, как репозиторий sbt был перемещен на другое зеркало. Теперь в плагине Scala 0.26.323 он разрешает точную версию плагина sbt-structure (1.0.2), и все должно работать. С уважением, Александр Подхалюзин.
Alefas 06
@ Джеффри, не могли бы вы дать ссылку на заявку в службу поддержки? Последнее обновление теперь правильно добавляет новые дополнительные зависимости, но не вносит изменений в версию существующей зависимости (мне нужно вручную изменить различные .iml и .idea / libraries / SBT_SBT_ .xml на новый номер версии). Я хотел бы следить за этим тикетом.
Дэвид Б.
1
Мой билет был дубликатом SCL-6340
Джеффри Агилера
0

Возможно, это работает только для каких-то проектов, но в моем случае

Со стороны библиотеки я использую sbt:publishLocal

на стороне клиента, куда входит библиотека, я нажимаю элемент меню Build -> Build (Ctrl-F9), а иногда, когда открытые файлы или Intellisens еще не являются текущими, я делаю это Ctrl-Alt-Y(элемент меню File -> Synchronize), чтобы получить файл, отражающий обновленную базу кода.

refresh all sbt projectsДля меня отсутствие необходимости - это быстрее.

Хартмут П.
источник