構建生命周期(Build Lifecycle)
生命周期分為:
- default (處理項目部署)
- clean(處理項目清理)
- site (處理生成項目站點文檔)
階段(Phase)
每一個生命周期是由不同的構建階段(build phase)構成的
- validate 驗證項目是否正確并且所有的信息是有效的
- compile 編譯項目的源碼
- test 使用合適的單元測試框架來測試已經被編譯的源碼
- package 將源碼打包成指定的格式柬批,如JAR
- verify 對集成測試結果進行檢查泌参,以確保滿足質量標準(這個沒用過不太了解)
- install 將生成的package安裝到本地倉庫,用于本地作為其他工程依賴來使用
- deploy 發(fā)布package到遠程倉庫讓別人使用(自己還沒有到達這個地步鲤桥,還無緣使用LOL)
其他更多階段請看Lifecycle Reference
以上所有的階段(加上Lifecycle Reference中其他的)構成了 default生命周期祭椰。
坐標:
還記得上一篇我們創(chuàng)建工程的時候填寫的信息嗎讯泣?
在Maven中groupId+artifactId+version唯一標示了一個資源阵漏,我們可以理解為坐標预侯。Maven中有本地倉庫和 遠程倉庫府蛇,使用坐標搜索的時候回優(yōu)先使用本地倉庫集索,沒有去遠程倉庫找,然后下載到本地汇跨,這也是上一篇我們打開auto import的原因务荆,自動幫我們下載
插件
Maven核心是一個插件執(zhí)行框架,官網插件詳細介紹
- 構建插件(build plugins)定義在<build>標簽中穷遂,類似下面
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
2.報告插件(reporting plugins)定義在<reporting>標簽中
常用標簽:
<packaging>指定打包信息函匕,默認是jar
<name>項目描述名
<url>項目地址
<description>項目描述
<developers>開發(fā)者信息
<licenses>許可證信息
<organization>組織信息
<dependencies>依賴信息
<dependency>
….
<scope></scope>依賴范圍,若為test盡在test代碼中能引用
<optional></optional>是否可選
<exclusions>排除依賴傳遞列表
<exclusion>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>依賴管理(父模塊中定義蚪黑,子模塊繼承)
</dependencyManagement>
<build>構建行為
<plugins>插件列表
<parent>子模塊總對于父模塊的繼承
<modules>聚合多個子模塊
<properties>自己定義標簽盅惜,使用${標簽名}來使用
依賴沖突:
1.短路,優(yōu)先依賴層級最少的
2.層級相同先聲明則優(yōu)先