maven+jetty多webapp配置(非cargo)

hello_xusir發表於2016-12-01

專案的結構是類似這樣的:

main

    |_  main-a

    |_  main-b

在maven的配置檔案裡,main作為總的公共模組包含兩個平級的web app模組,main-b是模擬靜態資源服務而構建的,js,css,圖片之類的靜態資源都放在這裡(方便以後靜態資源遷移到專門的靜態資源伺服器),main-a是主要的模組,處理動態的請求,開發階段使用maven的jetty外掛來除錯程式,因為不喜歡在eclipse裡用WTP下Server工程的deploy(慢,有時候還會因為沒有及時同步檔案出一些錯),也不想用cargo去專門管理deploy,因為需求很簡單麼,就是讓jetty跑兩個web app就可以了,去jetty的官網看了下資料(http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin ),原來用contextHandlers配置下就可以了。

這裡我方便開發,直接在main-a裡做了jetty的配置,讓我在jetty載入完main-a的時候也去載入main-b

 

Xml程式碼  收藏程式碼
  1. <plugin>    
  2.     <groupId>org.mortbay.jetty</groupId>    
  3.     <artifactId>maven-jetty-plugin</artifactId>    
  4.     <configuration>    
  5.         <webApp>${basedir}/target/main-a</webApp>    
  6.         <scanIntervalSeconds>10</scanIntervalSeconds>    
  7.         <contextPath>/main-a</contextPath>    
  8.         <contextHandlers>    
  9.             <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">    
  10.                 <war>${project.parent.basedir}/main-b/target/main-b.war</war>    
  11.                 <contextPath>/main-b</contextPath>    
  12.             </contextHandler>    
  13.         </contextHandlers>    
  14.     </configuration>    
  15. </plugin>    
 

然後在main-b執行完package生成war包後,再在main-a工程目錄下直接mvn jetty:run就可以同時讓jetty載入main-a和main-b

如果想不依賴生成的war包,也可以這樣配置

Xml程式碼  收藏程式碼
  1. <plugin>  
  2.     <groupId>org.mortbay.jetty</groupId>  
  3.     <artifactId>maven-jetty-plugin</artifactId>  
  4.     <configuration>  
  5.         <webApp>${basedir}/target/main-a</webApp>  
  6.         <scanIntervalSeconds>10</scanIntervalSeconds>  
  7.         <contextPath>/main-a</contextPath>  
  8.         <contextHandlers>  
  9.             <contextHandler implementation="org.mortbay.jetty.webapp.WebAppContext">  
  10.                 <resourceBase>${project.parent.basedir}/main-b/target/main-b</resourceBase>  
  11.                 <contextPath>/main-b</contextPath>  
  12.             </contextHandler>  
  13.         </contextHandlers>  
  14.     </configuration>  
  15. </plugin>  

相關文章