2009-10-08 12 views
5

Podczas tworzenia aplikacji internetowych Maven zazwyczaj odwołuję się do aplikacji jetty-maven-plugin, aby szybko uruchomić moją aplikację do lokalnego testowania i debugowania. Użycie funkcji uruchamiania z m2eclipse ma tę wadę, że nie obejmuje wszystkich źródeł do debugowania, mimo że są pobierane przez Mavena (patrz Source lookup does not seem to work).Preferowany sposób tworzenia aplikacji internetowych za pomocą programu m2eclipse

Jaki jest preferowany sposób debugowania aplikacji internetowych Maven w środowisku Eclipse? Byłbym szczególnie wdzięczny za konfiguracje, które współpracują z gwt-maven-plugin.

+0

Czy są jakieś dodatkowe zalety za pomocą narzędzia m2eclipse over WTP do testowania i debugowania aplikacji webowych w środowisku Eclipse? – cetnar

+0

@cetnar: m2eclipse pozwala mi używać Maven dla wszystkich rzeczy, takich jak mavenish zależnościami, wtyczki itp –

Odpowiedz

7

Moim preferowanym sposobem na tworzenie aplikacji internetowych przy użyciu programu m2eclipse jest ... nieużywanie go. Zamiast korzystać z metody opisanej w Debugging with the Maven Jetty Plugin in Eclipse który cytuję poniżej:

Krok 1

Przejdź do Narzędzia/run/zewnętrzne zewnętrzne narzędzia ... „z menu na” Uruchom "menu" bar Wybierz "Program" i kliknij przycisk "Nowy" . Na karcie "Główne" wypełnij w "Lokalizacja:" jako pełną ścieżkę do pliku wykonywalnego "mvn" dla " Katalog roboczy: "wybierz obszar roboczy pasujący do twojej aplikacji internetowej.Dla "Argumenty:" dodaj jetty:run.

przejść na zakładkę „Środowisko” i kliknąć przycisk „Nowy”, aby dodać nowy zmienną o nazwie MAVEN_OPTS o wartości :

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y 

Jeśli podasz suspend=n zamiast suspend=y można rozpocząć natychmiast bez uruchamiania debuggera i uruchomienia debugera w dowolnym momencie naprawdę chcesz debugować.

Krok 2

Następnie podciągnąć "Run/Debug/debug ..." z menu, a następnie wybierz "Remote Java Application" i kliknij przycisk "Nowy" . Wypełnij okno dialogowe, wybierając: , wybierając projekt aplikacji internetowej dla pola "Projekt:" i upewnij się, że numer jest taki sam, jak numer określony w powyższej address= właściwości.

Teraz wszystko, co musisz zrobić, to run/zewnętrznych narzędzi i wybierz nazwę w konfiguracji narzędzia Maven utworzonego w kroku 1, aby uruchomić wtyczkę a następnie Run/Debug wybierz nazwę konfiguracja debugowania skonfigurowana w kroku 2.

Od instrukcjami udzielonymi przez Rolf Strijdhorst na Maven dyskusyjnej listy

Przerywanie Jetty

W celu zatrzymania serwera molo, "Zezwalaj na zakończenie zdalnego VM" powinny być sprawdzone w oknie debugowania w Krok 2. Gdy masz uruchomiony serwer pomost i debugger połączony Ci może przełączyć się na perspektywa debugowania. W widoku debugowania, kliknij prawym przyciskiem na Java HotSpot (TM) Client VM [localhost: 4000] i wybrał zakończyć. Spowoduje to zatrzymanie debugera i serwera pomostu.

+0

Znacznie lepiej, dziękuję. –

3

Staraj się unikać pisania kodu, który potrzebuje jakiegoś kontenera do debugowania. Zawsze pisz kod, który może działać niezależnie i zawiń go w bardzo cienką warstwę do wdrożenia (cienka warstwa -> kilka linii kodu -> kilka błędów).

Jeśli naprawdę musisz, spróbuj MockRunner emulować serwer aplikacji.

Oprócz tego można ręcznie dodać źródła we właściwościach projektu.

+0

Dzięki za odpowiedź. Zgadzam się z twoim oświadczeniem o warstwowaniu, ale czasami potrzebuję całej aplikacji uruchomionej do debugowania problemów z integracją, i to jest, gdy wyszukiwanie źródła jest najbardziej przydatne. –

+0

W takim przypadku należy ustawić punkty przerwania i dodać źródła do właściwości projektu, jak można napotkać „brakujące źródłowy” pogląd. Trochę pracy ręcznej, dopóki nie pojawi się kolejna wersja m2eclipse. –

Powiązane problemy