2011-10-01 62 views
2

我會在本地運行maven,它太棒了!我現在唯一的問題是我有一個沉重的堆棧,我有這些大量的WAR文件。關於使用Maven作爲一個工具來同步你的本地依賴和運行在服務器上的應用程序,有沒有一種好的方法或最佳做法?如何在Maven中將服務器目標設置爲服務器/同步?

例如,我可以以某種方式創建一個上傳POM的目標,並告訴Maven在服務器端重建?我們在兩邊運行linux。本地Jetty和遠程Tomcat。

我敢肯定想到了這一點Apache的傢伙...你的想法是非常讚賞...

+0

我們使用SVN太...但切換到水銀 – Spider

+0

你爲什麼要重建在服務器端的東西(如Maven和SVN集成)在想什麼?你的戰爭已經建成。只需將它部署在服務器上即可。不需要重建。 –

+0

我的WAR是100MB,我們的服務器位於世界的另一邊。上傳需要一段時間,如果您正在進行服務器端調試或維護,這是一個痛苦。 – Spider

回答

0

我認爲正確的方法是安裝所產生的戰爭(如果每臺服務器配置neccessary一個)進入一個存儲庫(不是SVN,像Nexus這樣的Maven存儲庫)。通過這種方式,您可以設置簡單的腳本或maven配置來在測試或生產服務器上部署工件,而無需在服務器上重新構建它們。

結帳install plugin

2

您可以查看的一個工具是cargo,它可以將生成的工件生成並安裝到遠程服務器實例。貨物可以集成到你的maven版本中。但是,如果您有多個開發人員並且只是希望將最新版本的存儲庫部署到服務器上,我鼓勵您至少調查持續集成服務器,並設置手動或夜間工作爲你做部署。持續集成服務器,如Jenkins,可以:

  1. 檢查SVN的改動任何代碼(如果要啓用SVN輪詢)
  2. 執行檢出(或恢復+更新)接收來自最新的代碼SVN。
  3. 構建使用Maven構建WAR文件。
  4. 使用Jenkins Deploy插件或後期構建步驟來部署最終的WAR。讓Cargo在構建過程中通過maven部署也是一種選擇。

只是有些想法。我還強烈推薦Nexus作爲工件存儲庫。由於Jenkins能夠將構建版本作爲Maven構建版運行,因此您可以配置Jenkins以運行部署目標並將maven配置爲您部署的構件服務器的位置(Nexus位置),以便將構建推送到該構建版。