是否有人知道gradle的「熱部署」插件(或中間件作爲shell腳本),它將源文件夾中的文件直接應用到tomcat的webapps目錄下的項目文件夾中(而不是像gretty或gradle tomcat plugin;版本7,獨立於環境的嵌入式服務器)?如何使用gradle將熱源部署到tomcat7中?
最後,我想實現一個智能開發工作流程,以在代碼製作過程中(重新,不可以)部署java web應用程序。我正在尋找grunt watch任務。
場景:在WEB-INF/lib文件夾中帶有自包含可執行jar文件的Java Web應用程序。在上面的gradle這個任務
- 寄存器觀察家任務
- 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
當然,你的想法是釋放或nigthly建立相當不錯。 –