2016-03-09 16 views
19

Podczas budowania mojej pierwszej aplikacji Spring Boot odkryłem, że muszę restartować moją aplikację za każdym razem, gdy dokonuję zmiany w pliku JavaScript w/resources/static/some- file.jsWiosenne devtools - ponowne ładowanie zawartości statycznej nie działa w IntelliJ

Jest to bardzo czasochłonne.

Po przeniesieniu plików do katalogu/webapps/działa zgodnie z oczekiwaniami, ale pliki nie są spakowane w pliku JAR. Dokumenty wspominają o tym, więc nie mogę kontynuować w ten sposób.

Przeczytałem wszystko o spring-boot-devtools i zainstalowałem go w moim POM, ale hotswapping nie działa. Nadal muszę zrestartować całą aplikację, aby zobaczyć zmianę pliku JavaScript lub CSS.

Po uruchomieniu aplikacji, widzę linię LiveReload server is running on port 35729, więc spring-boot-devtools należy robić coś ...

Jakie byłyby kroki w celu dalszego zbadania, co jest nie tak?

Domyślam się, że kiedy IntelliJ uruchamia aplikację, pliki są kopiowane, więc kiedy dokonuję zmiany, faktycznie zmieniam oryginalne pliki, a nie te używane przez uruchomioną aplikację.

PS: Używam Mavena, IntelliJ IDEA 15 i Spring Boot 1.3.3 z wbudowanym serwerem Tomcat. Nie jestem pewien, jakie polecenie uruchamia IntelliJ, aby uruchomić aplikację. IDE obsługuje to "automatycznie". Być może muszę zmienić konfigurację uruchamiania?

+0

czy to projekt wiosennego rozruchu? podczas wiosennego rozruchu domyślnie src/main/resources/templates jest miejscem, w którym znajdują się widoki, a nie folderem webapps.proszę zamieścić plik pom.xml –

+0

Moje pliki znajdują się we właściwej lokalizacji. Próbowałem je przenieść tylko wtedy, gdy zauważyłem, że nie działa hotswapping. Zwróciłem pliki do ich pierwotnej lokalizacji po stwierdzeniu, że nie mogę zachować folderu "webapps". – Wouter

+1

Dobre wideo, jak działa w IDEA: https://www.youtube.com/watch?v=VWF7vCJSqrA – GKislin

Odpowiedz

71

Musisz włączyć kilka funkcji w IntelliJ, aby to działało.

Po pierwsze, istnieje ustawienie specyficzne dla projektu, które należy zastosować w każdym projekcie, w którym chcesz używać devtools. Przejdź do Preferencje> Kompilator i włącz opcję "Utwórz projekt automatycznie."

Następnym ustawieniem jest ustawienie rejestru IDEA, które ma zastosowanie do wszystkich projektów.

  • W OSX, naciśnij Shift+Command+A (Shift+Ctrl+A w Windows)
  • Type "rejestr" w polu wyszukiwania, które się pojawi, wybierz rejestr, aby go otworzyć.
  • Wyszukaj kompilator.automake.allow.when.app.running i włącz go.

Następnie uruchom ponownie aplikację. Zauważysz, że projekt przebudowuje się z każdą zmianą, którą wprowadzasz. Kiedy sprawdzisz wynik w przeglądarce, zobaczysz zarówno statyczne pliki jak i kod zostały zaktualizowane.

Napisałem też na blogu o tym jakiś czas temu. http://patrickgrimard.com/2016/01/18/spring-boot-devtools-first-look/

+2

W systemie Windows: naciśnij Ctrl-Alt-Shift-/i wybierz "Rejestr" z menu, które się pojawi. –

+0

Pomógł dużo, dziękuję! –

+1

Całkiem miło. Dla mnie najlepszym rozwiązaniem byłoby ponowne uruchomienie serwera internetowego tylko wtedy, gdy zapisuję plik źródłowy, a nie automatycznie. Zbadanie tego. – Jannik

11

Dla użytkowników systemu Windows kroki są:
1) Idź do Plik-> Ustawienia, a następnie na "Budowanie, wykonanie, wdrożenie" -> Compiler i włączyć flagę "Make projekt automatycznie".
2) Naciśnij Ctrl-Alt-Shift-/i wybierz "Rejestr" z menu, które się pojawi. Włącz flagę kompilator.automake.allow.when.app.running.
3) Uruchom/uruchom ponownie aplikację i obserwuj ponowne ładowanie zawartości statycznej.

Powiązane problemy