Як змусити IntelliJ IDEA перезавантажити залежності від build.sbt після їх зміни?


123

Я використовую IntelliJ IDEA 13 (Community Edition) із плагіном Scala.

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

Як змусити IDEA перезавантажити залежності build.sbt?


1
Я мав таку саму поведінку, яку ви описуєте, і тоді вона почала працювати, не роблячи нічого. Я маю враження, що інтеграція sbt зараз трохи заплутана, і нам просто потрібно набратися терпіння.
Nicolas Rinaudo

Ще не працює для мене (січень 2017).
qu1j0t3

Відповіді:


191

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

Якщо ви використовуєте функцію автоматичного імпорту, вам потрібно зберегти файл, щоб примусити автоматично оновити.


16
Ось як відкрити вікно інструмента SBT: stackoverflow.com/questions/32374193/… (якщо хтось інший недоступний, щоб знайти його)
Kaushik Acharya

12

Якщо плагін "застряг", він допомагає визнати недійсним кеш (у меню файлів) та перезапустити intellij.


4

Станом на 7 грудня 2013 року питання вирішено. Вам потрібно оновити плагін Scala в IntelliJ IDEA (це стосується як спільноти, так і версій версій).

Це посилання на проблему, відкриту на веб-сайті спільноти розробників JetBrains: http://devnet.jetbrains.com/thread/451395


Це здається не пов'язаним з початковим питанням. Про помилку jetbrains пише: "Створюючи новий проект із існуючого проекту SBT". Проблема полягає в тому, що IntellliJ іноді не отримує найновіші бібліотеки, навіть із включеним автоматичним імпортом. Як вказує @alefas, іноді доводиться змушувати перезавантажувати (ebven за допомогою плагіна 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), і все повинно працювати. З найкращими побажаннями, Олександр Підхалюзін.
Алефас

@Jeffrey, ти можеш зв’язати білет підтримки? Останнє оновлення тепер належним чином додає нові додаткові залежності, але не змінює пікапну версію існуючої залежності (я повинен вручну змінити різні .iml та .idea / бібліотеки / SBT_SBT_ .xml на новий номер версії). Я хотів би продовжити цей квиток.
Девід Б.

1
Мій квиток був дублікатом SCL-6340
Джефрі Агілера


0

Можливо, це працює лише для якихось проектів, але в моєму випадку,

з боку Бібліотеки, я в sbt :publishLocal

на стороні Клієнта, куди потрапляє Бібліотека, я натискаю пункт меню Build -> Build (Ctrl-F9), а іноді, коли відкриті Файли чи Інтеллісенс ще не актуальні, я роблюCtrl-Alt-Y (пункт меню File -> Synchronize), щоб отримати файл, що відображає оновлену базу коду.

refresh all sbt projectsМені не треба швидше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.