2012-03-16 58 views
4

我們在構建服務器上使用Cargo with Maven來遠程部署從我們的構建服務器到內部QA服務器的WAR文件進行測試。在Maven中使用Cargo來遠程部署WAR沒有HOT部署

我們目前的項目POM見下文,並適用於熱部署。

問題是,而不是熱部署,我們希望Cargo插件停止Tomcat實例,部署新的WAR,然後啓動Tomcat。有沒有辦法改變POM來管理這種情況?

我們的Maven構建定義爲:

mvn clean deploy ... cargo:redeploy 

而在POM貨物插件設置:

    <plugin> 
         <groupId>org.codehaus.cargo</groupId> 
         <artifactId>cargo-maven2-plugin</artifactId> 
         <configuration> 
          <container> 
           <containerId>tomcat7x</containerId> 
           <type>remote</type> 
           <systemProperties> 
            <cargo.jvmargs>-XX:MaxPermSize=256M -Xmx1024m</cargo.jvmargs> 
           </systemProperties> 
          </container> 
          <configuration> 
           <type>runtime</type> 
           <properties> 
            <cargo.hostname>qa-server</cargo.hostname> 
            <cargo.servlet.port>8080</cargo.servlet.port> 
            <cargo.tomcat.manager.url>http://qa-server:8080/manager</cargo.tomcat.manager.url> 
            <cargo.remote.username>username</cargo.remote.username> 
            <cargo.remote.password>pass</cargo.remote.password> 
           </properties> 
          </configuration> 
          <deployer> 
           <type>remote</type> 
           <deployables> 
            <deployable> 
             <groupId>com.ourcompany</groupId> 
             <artifactId>myapp-artifactId</artifactId> 
             <type>war</type> 
             <properties> 
              <context>latest</context> 
             </properties> 
            </deployable> 
           </deployables> 
          </deployer> 
         </configuration> 
        </plugin> 
+0

熱部署會出現什麼問題?你有沒有遇到過任何你希望貨物停下來並啓動'tomcat'的問題? – tokhi 2013-08-05 10:05:51

回答

4

我們有困難的貨物。過了一會兒,tomcat卡住了,不會重新啓動。 Cargo不允許啓動/停止tomcat。

因此,我們最終做的是放棄貨物並使用腳本在距離詹金斯機器一段距離處重新啓動tomcat。此外,我們共享用於部署戰爭的集成機器上的文件夾。我們還使用Maven Assembly插件來處理我們的conf文件和文件夾。

0

什麼做一個呼叫到cleanTomcat螞蟻任務的build.xml文件中,並按照以下流程:

​​

關於通過unludo之前的響應,共享服務器之間的文件夾是一個好辦法提高部署階段的速度。

您也可以使用maven-clean-plugin(是mvn clean之一,但有額外的配置)來清除您的java項目之外的目錄,即刪除您需要在tomcat容器中刪除的內容。