2014-12-23 49 views
0

是否有人知道gradle的「熱部署」插件(或中間件作爲shell腳本),它將源文件夾中的文件直接應用到tomcat的webapps目錄下的項目文件夾中(而不是像grettygradle tomcat plugin;版本7,獨立於環境的嵌入式服務器)?如何使用gradle將熱源部署到tomcat7中?

最後,我想實現一個智能開發工作流程,以在代碼製作過程中(重新,不可以)部署java web應用程序。我正在尋找grunt watch任務。

場景:在WEB-INF/lib文件夾中帶有自包含可執行jar文件的Java Web應用程序。在上面的gradle這個任務

  • Java源代碼被改變

    • 寄存器觀察家任務
    • tomcat的停止
    • 刪除jar文件在WEB-INF/lib文件夾
    • 部署jar文件
    • 副本罐子進入WEB-INF/lib文件夾 (刪除所有日誌文件)
    • start tomcat

    如果靜態數據源發生更改(例如,更新),則不需要重新啓動tomcat。 JSP,JS等)。

    解決方案

    我想過在辦公室我們的工作方式。我的同事和我,我們在Windows機器上編程,我們在IDEA中使用一個鍵映射配置來啓動和停止我們本地安裝的Tomcat。

    對我來說,最簡單的方法是定義一個用戶相關的CATALINA_HOME系統環境變量,它引用Tomcat服務器的路徑。

    CATALINA_HOME = C:\Program Files\apache-tomcat-7.0.56 
    

    我定義它複製編譯war文件到文件夾的webapps一個部署任務((再)通過手動IEDA啓動Tomcat)。

    task deploy(type: Copy) { 
        def WEBAPPS_HOME = System.getenv()['CATALINA_HOME'] + '/webapps' 
        from 'build/libs/app.war' into WEBAPPS_HOME 
        dependsOn war 
    } 
    

    沒有人需要改變的build.gradle文件中的Tomcat路徑或存在是由混帳忽略沒有額外的user.config文件。 但我不喜歡手動Tomcat處理,並且在Mac上使用環境變量是不常見的。

    因此,我決定在本地開發中搜索嵌入式Tomcat服務器Gradle cargo plugin。它由Benjamin Muschko(Gradleware Engineer)在How to use local tomcat?...推薦,他描述了Cargo or Tomcat plugin...之間的區別。

    這個插件的設置很簡單。我不需要解釋。

    沒有人需要安裝自己的Tomcat,每個人都使用相同的版本服務器。

    對於我們的高級構建,我使用Gradle包裝的強大功能作爲Jenkins任務配置。 我執行一個wintods批處理命令。

    cd "%WORKSPACE%\app" 
    gradlew.bat clean build 
    
  • 回答

    -1

    我用詹金斯管理部署我們的應用程序。

    有很多插件可以幫助您完成這些任務,並且可以編寫您自己的腳本。

    Jenkins具有高度可配置性,因此您可以根據自己的需求進行調整。

    Jenkins URL

    +0

    當然,你的想法是釋放或nigthly建立相當不錯。 –