2012-10-10 12 views
11

Próbowałem zdalnie debugować wtyczkę maven dla projektu liquibase z Intellij. Problem polega na tym, że IDEA zwraca uwagę na niewłaściwą linię kodu źródłowego i nie rozumiem dlaczego. Kod źródłowy, który próbuję usunąć, jest nietknięty. Ręcznie buduję i instaluję wtyczkę w lokalnym repozytorium maven ze źródeł, których używam w Intellij. Moja wersja Intellijska to 11.1.3, a wersja maven to 3.0.4 działająca w systemie Ubuntu 12.04.IntelliJ przechodzi przez nieprawidłowe wiersze podczas debugowania zdalnej aplikacji Java

Do debugowania wtyczki użyłem komendy mvnDebug. Jeśli ktoś ma najmniejsze pojęcie o tym, co jest nie tak, proszę, daj mi kilka rad. Również, jeśli potrzebujesz więcej informacji, zapytaj. Nie jestem zbytnio przyzwyczajony do zdalnego debugowania (w rzeczywistości jest to drugi raz, kiedy to zrobiłem), więc mogłem wymusić pewne informacje, których potrzebujesz.

Odpowiedz

13

Dla mnie, gdy IntelliJ podświetla niewłaściwą linię, zawsze było tak, ponieważ wersja JAR/klas używanych do uruchamiania aplikacji różni się od moich plików źródłowych - tj. Do zbudowania JAR użyto innej wersji źródeł i/lub klasy.

Musisz być pewny, że pracujesz z dokładnego źródła, które zostało użyte do zbudowania klas, które debugujesz.

Można to sprawdzić, patrząc na ścieżkę klas używaną do uruchamiania aplikacji, lokalizując plik JAR lub katalog klas, który zawiera klasy, które debugujesz, i sprawdzając, czy zostały zbudowane na podstawie źródeł, które sprawdzasz.

Należy pamiętać, że podczas debugowania bibliotek innych firm często można pobrać słoik "źródeł" (patrz IntelliJ2-IDEA get Maven-2 to download source and documentation).

+0

Dziękuję facetowi! W moim przypadku wersja wtyczki użyta do zbudowania projektu nie była taka sama ze źródłami, które próbowałem debugować. To było dla mnie obojętne, że nie sprawdzam, która wersja wtyczki jest używana podczas budowania projektu. Myślałem, że użyje mojej ręcznie zbudowanej wersji. –

1

Zamiast przeprowadzać zdalne debugowanie, możesz uruchomić wtyczkę bezpośrednio z IntelliJ.

  1. Załaduj projekt wtyczki liquibase do IntelliJ, wskazując tylko na pom.xml.
  2. Wybierz Edit Configurations...
  3. Naciśnij przycisk + do Add New Configuration.
  4. Wybierz Maven. enter image description here
  5. Wpisz Working directory do projektu, na którym chcesz uruchomić wtyczkę.
  6. Wpisz Command line. Może być process-sources, lub liquibase:status w zależności od tego, co chcesz zrobić.
  7. Naciśnij OK
  8. Ustaw punkt przerwania w Liquibase Mojo.

Teraz można rozpocząć tę konfigurację naciskając SHIFT + F9.

Rozpocznie się Maven, a na końcu zobaczysz, że Twoja wtyczka czeka w punkcie przerwania!


Upewnij się, że zostały zdefiniowane wtyczki w celu pom.xml z poprawnej wersji, a także, że można zbudować wtyczki przed uruchomieniem go. Można to zapewnić, włączając Make w panelu Before Launch.

enter image description here

+0

Działa bardzo dobrze. Prosty i szybki, chociaż zdalne debugowanie jest dość szybkie, gdy wszystko znajduje się na lokalnym komputerze. –

+0

Myślę, że to zależy od sytuacji. Jeśli tworzysz wtyczkę, to podejście to ma lepszy czas na odwrócenie uwagi. Ale w twoim przypadku, gdy używasz już opracowanej wtyczki, inne rozwiązanie może być lepsze. – maba