標籤:
準備工作: 
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</webAppSourceDirectory>  
 
 -             <scanIntervalSeconds>6</scanIntervalSeconds>  
 
 -             <contextPath>/prospect</contextPath>  
 
 -             <webDefaultXml>jetty.xml</webDefaultXml>  
 
 -             <jettyEnvXml>jetty-env.xml</jettyEnvXml>  
 
 -             <connectors>  
 
 -                 <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
 
 -                     <port>8080</port>  
 
 -                     <headerBufferSize>80000</headerBufferSize>  
 
 -                 </connector>  
 
 -             </connectors>  
 
 -             <stopKey>stop</stopKey>  
 
 -             <stopPort>8089</stopPort>  
 
 -         </configuration>  
 
 -     </plugin>  
 
 - </plugins>  
 
[xml] view plaincopy
 - <plugins>  
 
 -     <plugin>  
 
 -         <groupId>org.mortbay.jetty</groupId>  
 
 -         <artifactId>maven-jetty-plugin</artifactId>  
 
 -         <version>6.1.26</version>  
 
 -         <configuration>  
 
 -             <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>  
 
 -             <scanIntervalSeconds>6</scanIntervalSeconds>  
 
 -             <contextPath>/prospect</contextPath>  
 
 -             <webDefaultXml>jetty.xml</webDefaultXml>  
 
 -             <jettyEnvXml>jetty-env.xml</jettyEnvXml>  
 
 -             <connectors>  
 
 -                 <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
 
 -                     <port>8080</port>  
 
 -                     <headerBufferSize>80000</headerBufferSize>  
 
 -                 </connector>  
 
 -             </connectors>  
 
 -             <stopKey>stop</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會等待直到用戶端就緒: 
 
(轉)maven eclipse debug