Jak zmusić IntelliJ IDEA do ponownego załadowania zależności z build.sbt po ich zmianie?

123

Używam IntelliJ IDEA 13 (Community Edition) z wtyczką Scala.

Mój początkowy import istniejącego projektu Scala z build.sbtdziałającym dobrze. Zależności biblioteki zostały przejęte przez IDEA. Dodatkowe zależności dodane po początkowym imporcie nie zostały pobrane, chociaż zaznaczyłem auto-importopcję.

Jak mogę zmusić IDEA do ponownego załadowania zależności build.sbt?

David B.
źródło
1
Zachowywałem się dokładnie tak samo, jak opisujesz, a potem zaczęło działać bez mojej aktywności. Mam wrażenie, że integracja sbt to teraz trochę bałaganu i po prostu musimy uzbroić się w cierpliwość.
Nicolas Rinaudo
Nadal nie działa dla mnie (styczeń 2017).
qu1j0t3

Odpowiedzi:

191

Możesz zmusić SBT do ponownego załadowania zmian: Otwórz okno narzędzi SBT (po prawej stronie IDE) i naciśnij przycisk odświeżania.

Jeśli używasz funkcji automatycznego importu, musisz zapisać plik, aby wymusić automatyczne odświeżanie.

Alefas
źródło
16
Oto jak otworzyć okno narzędzia SBT: stackoverflow.com/questions/32374193/ ... (na wypadek, gdyby ktoś inny nie mógł go znaleźć)
Kaushik Acharya
12

Jeśli wtyczka `` utknie '', pomaga unieważnić pamięć podręczną (w menu plików) i ponownie uruchomić intellij.

mary jane
źródło
4

Od 7.12.2013 problem został rozwiązany. Musisz zaktualizować wtyczkę Scala w IntelliJ IDEA (dotyczy to zarówno wydań społeczności, jak i Ultimate).

To jest łącze do problemu otwartego w witrynie społeczności deweloperów JetBrains: http://devnet.jetbrains.com/thread/451395

David Riccitelli
źródło
Wydaje się, że nie ma to związku z pierwotnym pytaniem. Błąd jetbrains mówi „Podczas tworzenia nowego projektu na podstawie istniejącego projektu SBT”. Problem polega na tym, że IntellliJ czasami nie pobiera najnowszych bibliotek, nawet przy włączonym automatycznym imporcie. Jak wskazuje @alefas, czasami trzeba wymusić przeładowanie (np. Z wtyczką Scala z 2018).
danio
3

Może to być spowodowane nieprawidłową publikacją, org.jetbrains:sbt-structure:latest.integrationktóra miała miejsce dziś wieczorem, około 4 lub 5 godzin temu. Biorąc pod uwagę, że Twój post ma 4 godziny ...

Możesz zobaczyć aktywność bluszczu w idea.log( ~/Library/Logs/IntelliJIdea13lub ~/Library/Logs/IdeaIC13na 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)

Otworzyłem bilet w JetBrains.

Jeffrey Aguilera
źródło
2
Wygląda na to, że był to problem z najnowszą integracją Ivy po przeniesieniu repozytorium sbt do innego serwera lustrzanego. Teraz we wtyczce Scala 0.26.323 rozwiązuje to dokładną wersję wtyczki sbt-structure (1.0.2) i wszystko powinno działać. Z poważaniem, Alexander Podkhalyuzin.
Alefas
@Jeffrey, czy możesz podać link do zgłoszenia do pomocy technicznej? Najnowsza aktualizacja teraz poprawnie dodaje nowe dodatkowe zależności, ale nie pobiera zmian w wersji istniejącej zależności (muszę ręcznie zmienić różne .iml i .idea / libraries / SBT_SBT_ .xml na nowy numer wersji). Chciałbym sprawdzić ten bilet.
David B.
1
Mój bilet był duplikatem SCL-6340
Jeffrey Aguilera,
0

Może to działa tylko w przypadku niektórych projektów, ale w moim przypadku

po stronie Biblioteki zajmuję się sbt:publishLocal

po stronie klienta, do której wchodzi biblioteka, klikam element menu Build -> Build (Ctrl-F9), a czasami, gdy otwarte pliki lub Intellisens nie są jeszcze aktualne, robię Ctrl-Alt-Y(element menu File -> Synchronize), aby uzyskać plik odzwierciedlający odświeżoną bazę kodu.

Brak konieczności refresh all sbt projectsjest dla mnie szybszy.

Hartmut P.
źródło