2013-04-16 23 views
2

我有一個包含多個.war包的多模塊項目。我希望能夠在父pom上運行'mvn jetty:run',並將每個子模塊的.wars部署在相同的嵌入式jetty實例上。如何從父pom'mvn碼頭:運行'?

我能夠從每個子模塊成功運行'mvn jetty:run',但是當我在父pom上運行它時,它會失敗並跳過子模塊。

試圖運行:從在下面的父POM結果 'MVN碼頭運行':

[ERROR]未能執行目標 org.mortbay.jetty:行家-碼頭-插件:6.1。 16:運行在 項目FlashCards_App默認CLI)的webapp源目錄C:\ dev的\酸味 ce_code \ FlashCards_App的\ src \主\ web應用不存在 - > [說明1]

這是真的存在父pom上沒有webapp目錄。

這是我的朋友的摘錄。完整的文件可以是found here

<modules> 
    <module>FlashCards_Domain</module> 
    <module>FlashCards_GWT</module> 
    <module>FlashCards_Service</module> 
    <module>FlashCards_Service_SpringData</module> 
    <module>FlashCards_Service_Jpa</module> 
    <module>FlashCards_WebServices</module> 
    <module>FlashCards_Struts</module> 
    <module>FlashCards_Test</module> 
</modules> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>maven-jetty-plugin</artifactId> 
      <version>${jetty.version}</version> 
     </plugin> 
    </plugins> 
</build> 

這與2009年在this post中詢問的問題基本相同。這已經過去了幾年,我想知道現在是否有其他選擇。上一篇文章提出了兩種解決方案(1)使用貨物插件和(2)從子模塊構建姐妹大戰。

+0

由於缺乏能夠給出一個權威的答案,我寧願張貼此爲註釋:我不認爲這是會飛的。你可能會編譯插件等,但我認爲這將是一個尷尬的解決方案充其量。如何做另一個依賴於其他項目的項目,僅僅是爲了這個目的?如果需要,它可以[組裝](http://maven.apache.org/plugins/maven-assembly-plugin/)依賴關係,然後運行單個Jetty。 –

回答

2

最好的辦法是將jetty插件配置爲run multiple webapps。我不確定它是否能夠從你父母的工作,所以你可能不得不使用你的模塊作爲「啓動器」的Web應用程序,或者在你的父項目中創建一個「虛擬Web應用程序」。

1

CD parent_module
命令mvn碼頭:運行-pl sub_module

+1

請爲您的答案提供一些解釋,以便未來的訪客可以知道它是什麼 –

+0

我認爲這是簡單的 – jiahut

2
 <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.2.6.v20141205</version> 
      <configuration> 
       <scanIntervalSeconds>0</scanIntervalSeconds> 
       <webApp> 
        <contextPath>/</contextPath> 
       </webApp> 
       <contextHandlers> 
        <contextHandler implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext"> 
         <war>${project.basedir}/app1/target/app1.war</war> 
         <contextPath>/app1</contextPath> 
        </contextHandler> 
        <contextHandler implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext"> 
         <war>${project.basedir}/app2/target/app2.war</war> 
         <contextPath>/app2</contextPath> 
        </contextHandler> 
       </contextHandlers> 
       <stopPort>9999</stopPort> 
       <stopKey>STOP</stopKey> 
      </configuration> 
     </plugin>