Maven
依賴管理:將項(xiàng)目中需要的jar包統(tǒng)一管理
一、Maven的安裝
1.下載
下載.zip格式的文件
http://archive.apache.org/dist/maven/maven-3
2.安裝
1. 將安裝包解壓到全英文路徑下
- 安裝目錄下的文件夾功能
-
bin
: 放置maven 命令塞椎,比如tomcat7:run
-
boot
: 本身的引導(dǎo)程序桨仿,比如自身運(yùn)行需要的類加載器 -
conf
: 配置文件-
settings.xml
: 主要使用的配置文件
-
-
lib
: maven自身運(yùn)行所需要的jar包【包括一些tomcat的插件】
-
2. 配置環(huán)境變量
- 步驟
-
新增系統(tǒng)變量:
M2_HOME:maven解壓路徑(bin文件夾前一級);
- 編輯path變量,新增:
%M2_HOME%\bin;
- 配置完后新建控制臺,輸入
mvn -v
案狠;如果出現(xiàn)配置信息則配置成功服傍。
-
新增系統(tǒng)變量:
3. 配置阿里的中央倉庫鏡像
配置Maven安裝路徑下的/conf/settings.xml的mirrors標(biāo)簽下,國外的中央倉庫太慢了,使用國內(nèi)阿里老大的骂铁。
<mirrors>
...
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
二吹零、Maven倉庫
1.Maven倉庫介紹
-
settings.xml
中的本地倉庫配置,默認(rèn)為Default: ${user.home}/.m2/repository
${user.home}指用戶家目錄拉庵,比如C:\Users\Administrator
- 配置本地倉庫文件位置,如下將倉庫位置指定到特定位置
<localRepository>D:/repository</localRepository>
2. 倉庫之間的關(guān)系
-
倉庫有三類:
- 本地倉庫
- 遠(yuǎn)程倉庫【私服】
- 中央倉庫【TB級別的】
個(gè)人maven項(xiàng)目中瘪校,先去本地找,本地沒有就去中央倉庫找名段。
公司的maven項(xiàng)目中阱扬,【本地找】-->【遠(yuǎn)程找】-->【本地上傳到遠(yuǎn)程/遠(yuǎn)程從中央倉庫下】
三、Maven項(xiàng)目結(jié)構(gòu)
- maven項(xiàng)目標(biāo)準(zhǔn)目錄結(jié)構(gòu)
-
/項(xiàng)目根路徑
-
/src
源代碼-
/main
-
/java
: 核心代碼部分 -
/resources
: 配置文件部分 -
/webapp
: 【web工程】頁面資源伸辟,js麻惶、css、圖片等
-
-
/test
-
/java
: 測試代碼 -
/resources
: 測試配置文件
-
-
-
/target
:編譯生成的文件 -
/pom.xml
:maven 工程的配置文件信夫,如坐標(biāo)信息
-
-
四窃蹋、Maven基本指令
1. 指令介紹
需要cd到項(xiàng)目根路徑下
1. mvn clean
:【清空項(xiàng)目編譯文件】 將項(xiàng)目根路徑下的target文件夾刪除了
每個(gè)開發(fā)人員開發(fā)的環(huán)境有可能不同,當(dāng)接手其他人的項(xiàng)目時(shí)需要重新進(jìn)行編譯静稻。
2. mvn compile
:【編譯警没,第一步】
將項(xiàng)目進(jìn)行編譯,放置在target文件夾
3. mvn test
:【測試振湾,第二步杀迹,先執(zhí)行第1步】
不僅僅編譯
/src/main/test/
下面的代碼, 同時(shí)編譯/src/main/java/
下面的代碼
4. mvn package
: 【打包】
-
可以配置
/項(xiàng)目根路徑/pom.xml
文件指定打包方式:-
war
: JavaWeb工程 -
jar
: 純Java工程
-
<packaging>war</packaging>
編譯
/src/main/test/
、/src/main/java/
押搪,同時(shí)打包;
5. mvn install
: 【安裝树酪,第三步,先執(zhí)行第1大州、2步】
- 編譯了正式代碼和測試代碼续语,打包工程文件
- 將打包文件安裝到了本地倉庫
6. mvn deploy
: 【發(fā)布,第四步厦画,先執(zhí)行第1疮茄、2、3步】
前提是需要進(jìn)行一些配置,后面介紹
7. mvn tomcat7:run
: 啟動(dòng)項(xiàng)目
2.maven生命周期
上面介紹的1/2/3/4步驟是 默認(rèn)的生命周期【重點(diǎn)力试,掌握】焚虱,單獨(dú)執(zhí)行某個(gè)步驟會先執(zhí)行先前的步驟;而
mvn clean
是獨(dú)立的一套 清理生命周期另外懂版,還有一個(gè)站點(diǎn)生命周期(了解)
- 各個(gè)生命周期完成的工作:
- 【clear Lifecycle】:清理生命周期,在進(jìn)行真正構(gòu)建之前進(jìn)行一些清理工作
- 【Default Lifecycle】: 構(gòu)建的核心部分:編譯躏率、測試躯畴、打包、部署等薇芝。
- 【Site Lifecycle】: 生成項(xiàng)目報(bào)告蓬抄、站點(diǎn)、發(fā)布站點(diǎn)
五夯到、Maven的概念模型
Maven包含了【一個(gè)項(xiàng)目對象模型(Project Object Model)】嚷缭、【一組標(biāo)準(zhǔn)集合】、【一個(gè)項(xiàng)目生命周期(Project Lifecycle】耍贾、【一個(gè)依賴管理系統(tǒng)(Dependency Management System)】阅爽、用來運(yùn)行定義在生命周期階段(phase)中【插件目標(biāo)*(plugin goal)】的邏輯
1. 項(xiàng)目對象模型(Project Object Model)
一個(gè)maven工程都有一個(gè)pom.xml文件,通過pom.xml文件定義項(xiàng)目的坐標(biāo)荐开、項(xiàng)目依賴付翁、項(xiàng)目信息、插件目標(biāo)等晃听。
2. 依賴管理系統(tǒng)(Dependency Management System)
通過maven的依賴管理對項(xiàng)目所依賴的jar包進(jìn)行統(tǒng)一管理百侧,pom.xml中配置的坐標(biāo)信息
<dependencies>
<dependency>
<groupId>?</groupId> -- 項(xiàng)目的名稱
<artifactId>?</artifactId> -- 模塊的名稱
<version>?</version> -- 版本信息
<scope>?</scope> -- 依賴范圍,作用域能扒,防止jar包沖突
</dependency>
</dependencies>
3. 一個(gè)項(xiàng)目生命周期(Project Lifecycle)
使用maven完成項(xiàng)目的構(gòu)建佣渴,項(xiàng)目構(gòu)建包括:清理、編譯初斑、測試辛润、部署等過程,maven將這些過程規(guī)范為一個(gè)生命周期见秤;maven通過一些簡單指令即可實(shí)現(xiàn)上面生命周期的各個(gè)過程频蛔,比如執(zhí)行
mvn compile
執(zhí)行編譯;執(zhí)行mvn clean
執(zhí)行清理。
4. 一組標(biāo)準(zhǔn)集合
maven將整個(gè)項(xiàng)目管理過程定義一組標(biāo)準(zhǔn)秦叛,比如:通過maven構(gòu)建工程的目錄結(jié)構(gòu)晦溪,有標(biāo)準(zhǔn)的生命周期、依賴管理有標(biāo)準(zhǔn)的坐標(biāo)定義等等挣跋。
5. 插件目標(biāo)(plugin goal)
maven管理項(xiàng)目生命周期過程都是基于插件完成的三圆。