2010-08-04 117 views
24

我對我們的ci服務器的設置有些疑問。 用於構建應用程序的maven命令在竹中被配置爲「mvn install deploy」Maven的安裝和部署

由於我的理解,這將調用所有階段長達「安裝」,然後再調用所有階段長達「部署」,這意味着,當我可以在我們的日誌中看到,該應用程序構建兩次(兩次編譯,兩次測試)等。這也意味着應用程序需要幾乎兩倍的時間來構建。

只需要「mvn deploy」即可正確構建應用程序。

我的理解/觀察是否正確?

+1

您的理解是正確的 – 2010-08-04 16:22:59

+1

單獨的部署是否確保只有在部署任何工件之前才能成功安裝(編譯)整個項目(和模塊)才能實現部署? – 2013-07-17 02:30:50

回答

31

是的,你所要做的就是看執行生命週期。

  • 驗證 - 驗證項目是正確的,所有必要的信息 可用
  • 編譯 - 編譯項目
  • 測試的源代碼 - 使用適合的單元測試 測試編譯的源代碼框架。這些測試不應該 需要打包代碼或部署
  • 打包 - 獲取已編譯的代碼並將其打包爲可分發的 格式(例如JAR)。
  • 集成測試 - 過程,如果有必要包部署到 集成測試 可以運行
  • 驗證的環境 - 運行任何檢查,驗證包是有效的,符合質量 標準
  • 安裝 - 安裝包到本地存儲庫,用於在其他項目 依賴本地
  • 部署使用 - 在整合或者發佈環境,複製最終 包到遠程倉庫中 共享與其他開發者和 項目。

在這裏你可以看到安裝在部署之前就已經發生了。知道在運行部署時重要的是,maven將運行所有其他階段,然後說出目標。因此,運行安裝然後部署將運行兩次,然後單個部署。