我正在尋找一個JVM項目(Java中,春天,Grails的,等等),一個非常簡單的部署工具,具有以下特點:簡單的基於Java的部署工具
- 並不需要專用的服務器/劑/ etc下,我想運行不同的開發機部署(或從CI服務器)作爲簡單的控制檯命令
- 並不需要任何特殊的服務器配置,不應該讓服務器配置爲您
- 只上傳一個WAR使用SCP或理想地使用rsync(僅更新更改的文件)
- (i (上傳到s3/cloudfront)
- 可以在遠程服務器上運行命令(重啓tomcat服務)
- 存儲服務器上最新的幾個版本,並且能夠回滾到其中的任何一個(基本上它應該是一個符號鏈接)
- 可以被配置爲使用不同的服務器(測試,分期和生產)
- (理想情況下)有一個Maven插件或Grails的插件
- 支持上傳到幾個服務器中並行
如若是是這樣的:
$ deploytool staging deploy
$ deploytool staging rollback
或
$ mvn deploytool:deploy -P staging
$ mvn deploytool:rollback -P staging
基本上它只是一個:
- 編譯+測試+建立歸檔服務器上(
/.../application/version-%date%/
) - 創建 '日期' 目錄
- 將WAR內容上傳到此目錄中,從本地機加工
- 上次更新後的符號鏈接(
/.../application/current/
- >/.../application/version-%date%/
- 重新啓動Tomcat(
sudo service tomcat7 restart
) - 刪除目錄與舊版本(只保留最後5個版本,或版本的最後45天)
- 如果事情是錯的 - 更新符號鏈接到以前的版本(並重新啓動tomcat)
我已經看過Puppet和JClouds,但似乎它是不同的東西,更多關於羣集配置,而不是部署。目前,我正在爲一個項目使用Ruby Capistrano,併爲另一個項目使用bash腳本。 Capistrano很好,但需要安裝rvm,ruby,gem等,對於非ruby團隊來說效果並不好,並且需要對java項目進行大量的定製。
所以,我想知道,有沒有任何類似Capistrano的Java/JVM項目工具?
你看着lu ntbuild?我們使用的是什麼,並且似乎與您正在尋找的相似。我只是一個使用它而不是luntbuild管理員的開發者,所以我不是,如果它具有所有你正在尋找的功能,但它看起來不會受到傷害。 – gbtimmon 2012-07-23 16:50:40
正如我從異地看到的,luntbuild是一個CI服務器。對? – 2012-07-23 16:54:17
我相信是的。 – gbtimmon 2012-07-23 17:01:13