配置jetty調試maven工程


    通過前面的文章我們建立了個maven的WebApp工程,下面我們就要測試下工程是否搭建成功。如何測試呢,當然是發布到可以運行jsp的容器中,通過瀏覽器來訪問。前面的文章中提到過在eclipse環境中配置tomcat服務器,那么我們就可以通過tomcat來進行測試。這種測試方式我就不多說了,用過eclipse的都知道。下面我主要是介紹另外一種方式,也就是用Jetty進行測試
    有人會問,有了tomcat還弄個jetty干嘛,不是多事嗎?其實不然,你想,用tomact是整個工程都要發布一次,工程大了后很費時間,而且如果只是修改了某個jsp文件或某個配置文件,要測試時也得整個工程都發布。用jetty則不然,運行后會一直運行,關鍵是它可以配置定時掃描工程並加載進行容器,這樣如果有改動后不用再重啟服務而可以直接在瀏覽器中刷新。
    說了這么多,那么如何在工程中配置jetty呢?下面聽我一一道來。
一:修改pom.xml文件
    jetty是一個maven的插件,因此我們需要修改pom.xml來引用這個插件,修改的部分如下:
  
  
  
          
  1. <plugin>
  2. <groupId>org.mortbay.jetty</groupId>
  3. <artifactId>jetty-maven-plugin</artifactId>
  4. <version>8.1.16.v20140903</version>
  5. <configuration>
  6. <webAppSourceDirectory>src/main/webapp</webAppSourceDirectory>
  7. <!-- 自動掃描時間參數,此處設置為3秒,為0表示 不自動掃描 -->
  8. <scanIntervalSeconds>3</scanIntervalSeconds>
  9. <!-- 工程的虛擬目錄名 -->
  10. <webAppConfig>
  11. <contextPath>/test</contextPath>
  12. </webAppConfig>
  13. <!-- 配置的停止jetty服務 -->
  14. <stopKey>shutdown</stopKey>
  15. <stopPort>9998</stopPort>
  16. </configuration>
  17. </plugin>

二:啟動與停止
1.新增一個外部命令

2.配置maven路徑與jetty命令


3.啟動jetty

4.啟動瀏覽器,因為jetty默認是監聽8080端口,所以輸入"http://localhost:8080/test/",如能正常打開表示jetty環境配置成功,注意后面的test是在pom中配置的,如沒有配置名稱則不需要了,如果配置成其它的名稱則要對應。如要修改監聽的端口,第二步的jetty:run的命令后面加上 -Djetty.port=(指定的端口)

5.如果要調試程序,則在命令的配置界面選擇Environment標簽頁,增加一項Veriable,name=【MAVEN_OPTS】,value=【-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket, address=8090 ,server=y,suspend=y】即可,如下圖示

注意:value中標紅的項是設置調試聽的端口,不要和運行的端口弄重了
6.配置要調試的工程
在工程上右鍵,彈出的菜單【Degug As】 ->【Debug Configurations..】



7.開始調試
啟動外部命令,我配置的叫jetty-debug

運行工程的debug
 

8.停止jetty
    停止jetty在maven配置好參數后,和建立jetty的運行外部工具一樣操作,只是運行的參數不同,如下圖示

三:常見錯誤解決
1.PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required 問題
解決:->右鍵項目->properties->Libraries->JRE System Library->Edit->Installed JREs->Edit->JRE home->找到JDK文件里面的jre->OK,注意是安裝的jdk目錄下的jre而不是原來安裝的jre目錄

2.在有些環境中,如果不能正常的運行mvn jetty:run命令,是因為默認情況下,只有org.apache.maven.plugins和org.codehaus.mojo兩個groupid下的插件才支持簡化的命令行調用,為了能在命令行中直接運行mvn jetty:run,需要修改下maven的配置文件,在配置文件中增加如下代碼即可
<settings>
    <pluginGroups>
          <pluginGroup>org.mortbay.jetty</pluginGroup>
    </plugiGroups>
    ...
<settings>





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM