maven : 是一個猶太語,意思是知識的積累
【官方描述】apache maven
http://maven.apache.org/what-is-maven.html
Maven’s primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. In order to attain this goal there are several areas of concern that Maven attempts to deal with:
Making the build process easy
Providing a uniform build system
Providing quality project information
Providing guidelines for best practices development
Allowing transparent migration to new features
Maven的主要目標
是讓開發人員在最短的時間內理解開發工作的完整狀態。為了實現這一目標,Maven試圖處理以下幾個方面的問題:
- 使構建過程變得簡單
- 提供統一的構建系統
- 提供優質的項目信息
- 提供最佳實踐開發指南
- 允許透明遷移到新功能
POM
POM stands for "Project Object Model" 項目對象模型
【官方描述】功能摘要
以下是Maven的主要特點:
* 遵循最佳實踐的簡單項目設置 - 在幾秒鐘內啟動新項目或模塊
* 所有項目的一致使用 - 意味著新開發人員進入項目的時間不會增加
* 卓越的依賴管理,包括自動更新,依賴關閉(也稱為傳遞依賴)
* 能夠輕松地同時處理多個項目
* 一個[龐大且不斷增長的庫和元數據庫,](http://maven.apache.org/repository/)可以立即使用,并與最大的開源項目一起安排,以實現最新版本的實時可用性
* 可擴展,能夠輕松[編寫](http://maven.apache.org/plugin-developers/) Java或腳本語言的[插件](http://maven.apache.org/plugin-developers/)
* 只需很少或不需要額外配置即可即時訪問新功能
* 用于在Maven之外進行依賴關系管理和部署的Ant任務
* 基于模型的構建:Maven能夠根據項目的元數據將任意數量的項目構建到預定義的輸出類型(如JAR,WAR或分發)中,而無需在大多數情況下執行任何腳本。
* 項目信息的連貫站點:使用與構建過程相同的元數據,Maven能夠生成包含您需要添加的任何文檔的網站或PDF,并添加有關項目開發狀態的標準報告。在“項目信息”和“項目報告”子菜單下,可以在本網站左側導航欄的底部看到此信息的示例。
* 發布管理和發布發布:沒有太多額外配置,Maven將與您的源代碼控制系統(如Subversion或Git)集成,并根據特定標記管理項目的發布。它還可以將其發布到分發位置以供其他項目使用。Maven能夠發布單個輸出,例如JAR,包含其他依賴關系和文檔的存檔,或者作為源代碼分發。
* 依賴管理:Maven鼓勵使用JAR和其他依賴項的中央存儲庫。Maven附帶了一種機制,您的項目客戶可以使用該機制從中央JAR存儲庫下載構建項目所需的任何JAR,就像Perl的CPAN一樣。這允許Maven的用戶跨項目重用JAR并鼓勵項目之間的通信,以確保處理向后兼容性問題。
maven能做的事情?
- 編譯
- 測試(junit)
- 運行
- 打包
- 部署
maven 的好處
依賴管理
一鍵構建
大型項目中的微服務架構的高效開發
maven 的搜索依賴文件的順序
本地-》遠程倉庫(私服)-》中央倉庫