簡體   English   中英

僅將帶有 Maven 的 Webapp 中的差異部署到遠程服務器

[英]Deploy Only Diffs in Webapp with Maven to Remote Server

我正在使用 cargo:deploy 和 maven 將應用程序部署到服務器。 這很好用,但我最近嘗試使用 CloudBees。 他們的基礎設施有一個類似的插件。 但是,它僅部署舊 WAR 和新 WAR 之間的差異,因此速度明顯更快。 cargo:deploy 需要 4 到 6 分鍾,而 CloudBees 方法需要不到一分鍾。

Maven 是否有任何插件允許我僅將更改部署到我自己的應用服務器? 現在我正在使用 Tomcat,但如果有其他好的解決方案,我會考慮切換應用程序服務器。

您需要服務器端支持來接收增量,這是我們(cloudbees)調用我們的秘訣的地方。

您需要的是目標服務器上的部署服務,該服務可以理解上傳的任何增量格式。

在某些方面做起來並不難......戰爭已經內置了校驗和,所以如果戰爭中的一個條目具有相同的路徑、最后修改、Crc 和大小,那么它是從 delta 中排除的一個很好的候選者,所以你需要一個更安全的 hash 或兩個(例如 sha-256 和 md5,給不同的函數進行比較),如果這些哈希值相同。 從增量中排除。

一個花哨的 tomcat-deployer web 應用程序可以支持這樣的部署,但你想將它鎖定以進行生產,但無論如何,當你可以 GSETDIFY 時為什么要托管自己

經過幾次貨物部署后,我發現我擺脫了服務器中的 memory 錯誤。 您可以使用 maven wagon ssh 擴展。 它可以根據擴展戰爭上傳。 這是使用文檔:

http://mojo.codehaus.org/wagon-maven-plugin/usage.html

但不知道如何讓它只上傳更改的文件。 ant 有一個文件緩存組件,它可以緩存文件的校驗和,並且只有在校驗和發生變化時才重新上傳。

即使您上傳了文件,也可能需要重新啟動,因為 tomcat 不太適合熱部署。

如果您只對 Tomcat 感興趣,您可以使用 Maven 的Tomcat 插件

It's not difficult to configure, just check the Tomcat manager application url because it is changed from Tomcat 6 (http://tomcat_server:8080/manager/) to Tomcat 7 (http://tomcat_server:8080/manager/html).

該插件在“打包”構建階段之后運行,因此它會將生成的戰爭直接部署到正在運行 Tomcat 的遠程服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM