Myeclipse中maven工程使用jetty外掛啟動jetty伺服器除錯
阿新 • • 發佈:2019-01-01
準備工作:
a. 在pom.xml中配置jetty外掛:
Xml程式碼
b. 使用maven的clean install命令將web及依賴工程打包成war檔案。
方式1 - Eclipse除錯:
①. 右鍵maven工程,在彈出的選單中選擇[Debug As],首次選擇[Maven build...],以後選擇[Maven build]來讀取儲存的配置啟動:
②. 在瀏覽器輸入地址http://localhost:8080/prospect/already/mosaic.htm,在程式碼上加斷點,命中後IDE提示:Source not found:
解決:
點選[Edit Source Lookup Path...]新增原始碼工程或目錄
完成後即可除錯程式碼:
方式2 - 遠端除錯:
①. 選擇Eclipse的[Run]-[External Tools]-[External Tools Configurations...]選單。
在開啟的對話方塊中,新建一個Program,輸入mvn.bat (mvnDebug.bat)的完整路徑,指定要啟動的web工程,在Arguments框輸入jetty:run
使用mvn.bat時,需要新增除錯引數:
切換到Environment選項,新增一個變數:
MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1066
注:address是和偵錯程式通訊的埠,不是服務的埠號。
其它引數:
-Xnoagent: 禁用預設sun.tools.debug偵錯程式
-Djava.compiler=NONE: 禁止JIT編譯器的載入
dt_shmem: 共享記憶體傳輸,僅限於Windows
點選[Run]啟動jetty伺服器
選擇Eclipse的[Run]-[Debug Configurations...]選單,在彈出的對話方塊中,新建一個Remote Java Application,指定和External Tools裡面相同的工程和連線屬性:
點選[Debug]啟動除錯客戶端
②. 同方式1的②
附:
i. 遠端除錯的jvm可以獨立於Eclipse執行:
這時Eclipse裡只有除錯客戶端:
ii. 如果suspend=y,執行JVM而沒有開啟除錯客戶端,JVM會等待直到客戶端就緒:
a. 在pom.xml中配置jetty外掛:
Xml程式碼
- <plugins>
- <plugin>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>maven-jetty-plugin</artifactId>
- <version>6.1.26</version>
- <configuration>
- <webAppSourceDirectory>src/main/webapp
- <scanIntervalSeconds>6</scanIntervalSeconds>
- <contextPath>/prospect</contextPath>
- <webDefaultXml>jetty.xml</webDefaultXml>
- <jettyEnvXml>jetty-env.xml</jettyEnvXml>
- <connectors
- <connectorimplementation="org.mortbay.jetty.nio.SelectChannelConnector">
- <port>8080</port>
- <headerBufferSize>80000</headerBufferSize>
- </connector>
- </connectors>
- <stopKey>
- <stopPort>8089</stopPort>
- </configuration>
- </plugin>
- </plugins>
b. 使用maven的clean install命令將web及依賴工程打包成war檔案。
方式1 - Eclipse除錯:
①. 右鍵maven工程,在彈出的選單中選擇[Debug As],首次選擇[Maven build...],以後選擇[Maven build]來讀取儲存的配置啟動:
②. 在瀏覽器輸入地址http://localhost:8080/prospect/already/mosaic.htm,在程式碼上加斷點,命中後IDE提示:Source not found:
解決:
點選[Edit Source Lookup Path...]新增原始碼工程或目錄
完成後即可除錯程式碼:
方式2 - 遠端除錯:
①. 選擇Eclipse的[Run]-[External Tools]-[External Tools Configurations...]選單。
在開啟的對話方塊中,新建一個Program,輸入mvn.bat (mvnDebug.bat)的完整路徑,指定要啟動的web工程,在Arguments框輸入jetty:run
使用mvn.bat時,需要新增除錯引數:
切換到Environment選項,新增一個變數:
MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1066
注:address是和偵錯程式通訊的埠,不是服務的埠號。
其它引數:
-Xnoagent: 禁用預設sun.tools.debug偵錯程式
-Djava.compiler=NONE: 禁止JIT編譯器的載入
dt_shmem: 共享記憶體傳輸,僅限於Windows
點選[Run]啟動jetty伺服器
選擇Eclipse的[Run]-[Debug Configurations...]選單,在彈出的對話方塊中,新建一個Remote Java Application,指定和External Tools裡面相同的工程和連線屬性:
點選[Debug]啟動除錯客戶端
②. 同方式1的②
附:
i. 遠端除錯的jvm可以獨立於Eclipse執行:
這時Eclipse裡只有除錯客戶端:
ii. 如果suspend=y,執行JVM而沒有開啟除錯客戶端,JVM會等待直到客戶端就緒: