2012-07-23 14 views
1

我正在尋找一個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 

基本上它只是一個:

  1. 編譯+測試+建立歸檔服務器上(/.../application/version-%date%/
  2. 創建 '日期' 目錄
  3. 將WAR內容上傳到此目錄中,從本地機加工
  4. 上次更新後的符號鏈接(/.../application/current/ - >/.../application/version-%date%/
  5. 重新啓動Tomcat(sudo service tomcat7 restart
  6. 刪除目錄與舊版本(只保留最後5個版本,或版本的最後45天)
  7. 如果事情是錯的 - 更新符號鏈接到以前的版本(並重新啓動tomcat)

我已經看過Puppet和JClouds,但似乎它是不同的東西,更多關於羣集配置,而不是部署。目前,我正在爲一個項目使用Ruby Capistrano,併爲另一個項目使用bash腳本。 Capistrano很好,但需要安裝rvm,ruby,gem等,對於非ruby團隊來說效果並不好,並且需要對java項目進行大量的定製。

所以,我想知道,有沒有任何類似Capistrano的Java/JVM項目工具?

+0

你看着lu ntbuild?我們使用的是什麼,並且似乎與您正在尋找的相似。我只是一個使用它而不是luntbuild管理員的開發者,所以我不是,如果它具有所有你正在尋找的功能,但它看起來不會受到傷害。 – gbtimmon 2012-07-23 16:50:40

+0

正如我從異地看到的,luntbuild是一個CI服務器。對? – 2012-07-23 16:54:17

+0

我相信是的。 – gbtimmon 2012-07-23 17:01:13

回答

2
  1. 使用maven-compiler-pluginmaven-surefire-pluginmaven-war-plugin建立
  2. 使用buildnumber-maven-plugin創建屬性與當前時間戳值
  3. 使用wagon-maven-plugin與生成的時間戳值上傳戰爭到臨時服務器
  4. 使用sshexec-maven-plugin啓動shell腳本這將重新啓動tomcat與選定的版本的應用程序
+0

謝謝!這是一種用maven重寫的bash腳本,但是我發現了一些有趣的插件,謝謝! – 2012-07-23 17:20:44