2010-05-22 63 views
7

我正在使用Maven構建工件的Java Web項目。在Maven構建結束時,我們有幾個jar和war文件需要部署到我們的開發/測試環境中。你將在Java中使用什麼部署腳本?

現在我們正在使用的執行多個任務(在Windows/Linux的計算機)一個相當沉重的Ant腳本

  • 啓動/停止服務
  • 拷貝/刪除文件
  • 構建一些東西然後執行它

螞蟻做的工作做好 - 但腳本正在迅速變得非常大,說實話,這對手頭的任務來說感覺不足。

是否有其他的選擇?我聽說過,但我不確定這是正確的路要走。

感謝您的幫助!

編輯:經過更多的研究,我發現了關於Gradle - 它似乎是一個非常好的組合重用螞蟻任務,並允許真正的腳本運行。值得一讀。

+0

我在工作(linux env)時遇到了同樣的問題,我們使用小型java程序來執行部署和monit腳本來啓動和停止服務,並綁定在shell腳本中。仍然凌亂,但並沒有真正解決你的問題在Windows ... – Dimitar 2010-05-22 13:09:41

回答

4

是的,看看在Cargo插件行家:

* Deploying to a running container 
* Generating a container configuration deployment structure 
* Merging WAR files 
* Starting and stopping a container 

Hudson - 持續集成引擎 - 可以用來實現這些任務爲好。

+0

是的,這是一個很好的方向。但是我仍然錯過了使用Ant獲得的copy/scp/sshexec部分... – Nadav 2010-05-22 22:22:55

+0

它以不同的方式完成 - 通過服務器公開的服務完成。 Tomcat例如有管理器應用程序,而Hudson使用它。我不知道如何運輸貨物。 – Bozho 2010-05-23 06:45:44

0

如果這是一項很大的任務,您可以隨時在Java或Jython中編寫ant任務並從ant中調用它們。

3

部署通常並不容易(通常非常具體),而Cargo maven plugin可能有助於遠程部署戰爭/耳朵(如果實現了您的應用服務器的遠程部署),我認爲它不會覆蓋你所有的需求。事實上,由於問題很模糊,所以我只想給出一些指示,這很難做到很精確。看看解決方案,如:

0

這似乎是在2017年開放的問題了。 搜索「java部署腳本」首先提到了這個問題,還有Ant和其他一些不相關的文章。

在撰寫本文時我正在研究的項目有6-7個我們放置在tomcat的lib /文件夾中的JAR文件,以及20-30個放在webapps /中的小WAR文件。我們確實有一個部署腳本,可從Bamboo服務器下載並擴展包含所有內容的存檔,但在開發過程中不可用。手動部署所有這些都是一場噩夢。

因此,我創建了自己的Python腳本,最初將部署幾個JAR和WARS到一個tomcat實例。

現在它是一個跨平臺的部署工具(在Windows和Mac上測試過)以及語言和服務器不可知的,可以通過JSON文件進行配置。 它可以:

  • 複製和刪除庫和應用程序

  • 運行本地和遠程(通過SSH)命令

  • 製作暫停

既然可以通過命令在遠程服務器上,你可以通過Shell命令做很多事情(我們使用它們來啓動/停止tomcat,等待它啓動/停止,刪除日誌等) 。

部署腳本位於GitHub

相關問題