Wczoraj przestawiłem się na IntelliJ IDEA z Eclipse.
Używam JRebel również z WebSphere Server 7.
Teraz wszystko wydaje się działać całkiem dobrze, z wyjątkiem tego, że kiedy modyfikuję plik Java i wciskam save , IntelliJ nie dokonuje ponownej kompilacji pliku, aby JRebel mógł go pobrać.
Funkcja „ Kompiluj automatycznie ” Eclipse rozwiązała ten problem.
W IntelliJ IDEA muszę nacisnąć CTRL+ SHIFT+, 9aby ponownie skompilować odpowiednią klasę, aby JRebel ją podniósł. Jeśli zmiany zostaną wprowadzone w dwóch plikach , muszę to zrobić na każdym z nich nich, a ponieważ IntelliJ używa mechanizmu zapisz wszystko, bardzo trudno jest wiedzieć, co ręcznie skompilować, czego tak naprawdę nie jestem zainteresowany.
Czy nie ma sposobu, aby zmusić IntelliJ do zrobienia tego samodzielnie ?
Ctrl
+F9
? To zbuduje cały projekt, a jeśli zmieni się tylko dwa pliki, zostaną one odbudowane.Odpowiedzi:
AKTUALIZACJA
W przypadku wersji IntelliJ IDEA 12+ możemy automatycznie budować edytowane źródła, jeśli korzystamy z opcji zewnętrznego kompilatora. Wystarczy tylko zaznaczyć opcję „ Automatycznie buduj projekt ”, znajdującą się w ustawieniach „ Kompilatora ”:
Ponadto, jeśli chcesz wdrożyć na gorąco, gdy aplikacja jest uruchomiona lub jeśli korzystasz z devtools wiosennego rozruchu, powinieneś również włączyć
compiler.automake.allow.when.app.running
rejestr. To automatycznie skompiluje twoje zmiany.Używanie Ctrl+ Shift+ A(lub ⌘+ Shift+ Ana Macu)
Registry
po otwarciu okna rejestru, zlokalizuj i włączcompiler.automake.allow.when.app.running
, patrz tutaj:W przypadku wersji starszych niż 12 możesz użyć wtyczki EclipseMode, aby IDEA automatycznie kompilowała zapisane pliki.
Więcej wskazówek można znaleźć w przewodniku „Migracja z Eclipse do IntelliJ IDEA” .
źródło
Wykonaj oba kroki:
1 - Włącz Automake z kompilatora
make project automatically
Make Project automatically
funkcję2 - Włącz Automake, gdy aplikacja jest uruchomiona
Registry
compiler.automake.allow.when.app.running
i włącz go lub kliknij pole wyboru obok niegoUwaga: uruchom ponownie aplikację teraz :)
Uwaga: Powinno to również umożliwić przeładowanie na żywo z devtools wiosennego rozruchu.
źródło
OSTRZEŻENIE
Wtyczka trybu Eclipse jest przestarzała i nie jest kompatybilna z najnowszymi kompilacjami IDEA 12+. Jeśli go zainstalujesz, IDE zawiesi się przy każdej zmianie pliku i zareaguje bardzo wolno.
IntelliJ IDEA nie korzysta z automatycznej kompilacji, wykrywa błędy w locie, a nie za pośrednictwem kompilatora. Podobnie do trybu Eclipse będzie dostępny w IDEA 12 :
Użyj
Build
|Make
, wywołuje proces tworzenia przyrostowego, który kompiluje tylko zmienione i zależne pliki (jest to bardzo szybki).Istnieje również wpis FAQ, który może pomóc.
Aktualizacja funkcji automatycznego tworzenia : gdy uruchomiona jest konfiguracja uruchamiania / debugowania,
Make project automatically
nie ma żadnego efektu. Klasy na dysku zmienią się tylko wBuild
|Make
. Jest to podstawowa decyzja projektowa, ponieważ naszym zdaniem zmiany klasy na dysku powinny być zawsze pod kontrolą użytkownika. Automatyczne tworzenie nie jest naśladowaniem funkcji Eclipse, działa inaczej, a jej głównym celem jest zaoszczędzenie czasu na przygotowanie klas, gdy są naprawdę potrzebne (przed uruchomieniem aplikacji lub testów). Automatyczne tworzenie nie zastępuje jawnej kompilacji, którą nadal trzeba uruchomić, jak w przypadku opisanym w tym pytaniu. Jeśli szukasz innego zachowania, lepszym wyborem byłaby wtyczka EclipseMode połączona w powyższym FAQ.źródło
Możesz utworzyć mapę klawiszy,
ctrl+s
aby zapisać ORAZ skompilować w jednym kroku. Przejdź do ustawień mapy klawiszy i wyszukajCompile
.źródło
W rzeczywistości nie ma różnicy, ponieważ oba wymagają 1 kliknięcia:
Najprostszym rozwiązaniem jest przyzwyczajenie się do tego. Ponieważ kiedy spędzasz większość dnia w swoim IDE, lepiej mieć szybkie nawyki w jednym niż powolne nawyki w kilku z nich.
źródło
Skończyło się na tym, że nagrałem Makro, aby zapisać i skompilować w jednym kroku, oraz mapę klawiszy
Ctrl+s
.źródło
Udało mi się to rozwiązać za pomocą makr.
Zacząłem nagrywać makro:
Nazwij to coś użytecznego, na przykład „SaveAndMake”.
Teraz wystarczy usunąć opcję Zapisz wszystkie skróty klawiszowe i dodać to samo przypisanie klawiszy do makra!
Tak więc teraz, za każdym razem, gdy zapisuję, zapisuje i tworzy brudną kompilację, a jRebel teraz poprawnie wykrywa wszystkie zmiany.
źródło
Proszę dokładnie wykonać te kroki, aby ją włączyć.
1) utwórz projekt Spring Boot z SB V1.3 i dodaj „Devtools” (1 *) do zależności
2) wywołaj Pomoc-> Znajdź akcję ... i wpisz „Rejestr”, w oknie dialogowym wyszukaj „automake” i włącz wpis „ compiler.automake.allow.when.app.running ”, zamknij okno dialogowe
3) włącz kompilację w tle w Ustawieniach-> Kompilacja, wykonanie, wdrożenie-> Kompilator „Utwórz projekt automatycznie”
4) otwórz konfigurację uruchamiania Spring Boot, powinieneś otrzymać komunikat ostrzegawczy, jeśli wszystko jest poprawnie skonfigurowane
5) Uruchom aplikację, zmieniaj klasy w locie
Zgłoś swoje doświadczenia i problemy jako komentarze do tego problemu.
kliknij tutaj, aby uzyskać więcej informacji
źródło
Jedyną rzeczą, która działała dla mnie w moim projekcie maven, na który to miało wpływ, jest dodanie celu „kompilacja testu” do konfiguracji uruchamiania moich testów jednostkowych. Niesamowicie nieporadne rozwiązanie, ale działa.
źródło
Intellij po cichu zawodzi, gdy napotyka problem kompilacji w innym module, a następnie nie jest wykonywana automatyczna kompilacja. Więc sprawdź swoje
Problems
oknoźródło
Miałem ten sam problem. Korzystałem z „trybu oszczędzania energii”, który zapobiega kompilacji przyrostowej i pokazywaniu błędów kompilacji.
źródło
Użyj wtyczki Reformat i Compile (zainspirowanej wtyczką Save Actions Alexandre DuBreuil):
https://plugins.jetbrains.com/plugin/8231?pr=idea_ce
W tej chwili oferuję tylko plik jar, ale jest to najważniejsza część kodu:
źródło
Edytuj konfigurację uruchamiania / debugowania, aby przed uruchomieniem była wybrana opcja Kompilacja
Po wybraniu opcji kompilacji
Powyższe rozwiązanie działało dla mnie podczas pracy z moim pakietem testowym JBehave
źródło
Nie działało to dla mnie z powodu niepotrzebnego modułu w strukturze mojego projektu. Testy zostały wykonane przy użyciu innego modułu, jak sądzę.
Nie wiem, jak to się skończyło, ale usunięcie go rozwiązało problem.
Upewnij się, że twoje ustawienia Uruchom / Debuguj korzystają z modułu, który budujesz z autozapisywaniem.
Np .: patrz moduł w
Możesz zmienić moduły w strukturze projektu - moduły
źródło
Miałem ten sam problem. Myślę, że właściwe byłoby sprawdzenie, czy twoją klasę można skompilować, czy nie. Kliknij ponownie skompiluj (domyślnie Ctrl + Shift + F9). Jeśli nie działa, musisz zbadać, dlaczego się nie kompiluje.
W moim przypadku kod nie był automatycznie kompilowany, ponieważ były ukryte błędy w kompilacji (nie były nigdzie pokazywane w logach i działało maven clean-install). Przyczyna źródłowa była niepoprawna Struktura projektu -> Konfiguracja modułów, więc Intellij Idea nie był w stanie zbudować jej zgodnie z tą konfiguracją.
źródło
miałem ten sam problem, a także ikonę pliku problemem w IntelliJ, więc usunąłem
.idea
projekt import folderu i ponownie rozwiązać mój problem.źródło
Wystąpił błąd: niektóre słoiki nie są w ścieżce klas, więc po prostu usuwam uszkodzony słoik i wykonuję poniższe czynności
źródło
Za mało punktów, by skomentować istniejącą odpowiedź, ale podobnie do niektórych osób powyżej, właśnie skończyłem dodając makro i mapę klawiszy do Organizuj import / Format / Zapisz wszystko / FastReload (F9) / Synchronizuj .
Synchronizacja została dodana, ponieważ wydaje się, że jest to jedyny sposób, w jaki mogę zobaczyć aktualizacje zasobów zmodyfikowane przez zewnętrzne narzędzia / obserwatory kompilacji (np. Webpack).
Proces ten przebiega wolniej niż zaćmienie - i dla zewnętrznego odświeżania pliku często trzeba uruchamiać polecenie wiele razy - ale załóżmy, że mogę z tym żyć.
źródło