Maven 讀作['mevən] 翻譯成中文是"内行,專家"
Maven是什麼
-
包依賴的前世今生:
原始的jar包引用--> ant --> maven.
是一種項目管理工具
- Maven優勢:
- convertion over configuration 約定優于配置: 這個原則不僅适用于maven, 更是目前大多數架構遵循的原則,如mvc
- 簡單
- 易于測試
- 建構簡單
- CI(持續內建)
- 插件豐富
下載下傳和安裝
- 下載下傳: http://maven.apache.org/download.cgi
- 安裝: 解壓安裝即可
- 環境變量配置:
- windows: 配置path MAVEN_HOME
- linux: 在 .bash_profile 檔案中
- 運作參數: 定義環境變量MAVEN_OPS
- 配置settings.xml: settings.xml檔案是個空模闆,我們可以在這個檔案進行一些自定義配置. 常用的配置如:repo存儲目錄
建立maven項目
- 項目結構: 遵循約定優于配置原則, 項目包的組織結構如下
(一)Java工程化--Maven基礎 - pom.xml
groupId 公司組織id artifactId 功能命名 version 版本号 packageing 打包方式,預設jar,可修改為maven-project,war dependancyManagement 最好之出現在父pom中,用于統一版本号,隻做聲明依賴,子子產品pom中還需要引用,但不需要制定version. dependancy type 預設jar scope 指定哪個階段适用,各階段如下:
- compile 編譯,打包,預設 如spring-core
- test 測試 如spring-test
- provided 編譯 如servlet
- runtime 運作時 如JDBC驅動實作包
-
system 本地一些jar
依賴傳遞
依賴仲裁:(1)最短路徑原則,根據依賴樹就近取最接近的版本;(2)加載順序原則;(3)exclusions 排除包
指令: mvn dependancy:tree
Maven生命周期(三個過程)
區分術語:lifecycle/phase/goal
生命周期:
- clean
包含的phase: pre-clean --> clean --> post-clean
- default
compile package install deploy ...
- site
pre-site --> site -->post-site --> site-deploy
A Build Lifecycle is Made Up of Phases 一個建構生命周期是有多個phase組成
A Build Phase is Made Up of Plugin Goals 一個建構phase是由多個插件目标goal構成