Apache Maven拯勉,是一個軟件(特別是Java軟件)項目管理及自動構建工具,由Apache軟件基金會所提供憔购」停基于項目對象模型(縮寫:POM)概念,Maven利用一個中央信息片斷能管理一個項目的構建玫鸟、報告和文檔等步驟斗遏。Maven也可被用于構建和管理各種項目,例如C#鞋邑,Ruby诵次,Scala和其他語言編寫的項目。Maven曾是Jakarta項目的子項目枚碗,現為由Apache軟件基金會主持的獨立Apache項目逾一。
1.maven 軟件安裝
- 確定本地安裝 JDK
打開cmd 敲擊:echo %JAVA_HOME% 檢查 本地是否配置 JAVA_HOME環(huán)境變量;JAVA -version 檢查 JAVA 可執(zhí)行程序是否可用 - maven zip 包肮雨,解壓遵堵,解壓的路徑不要出現中文或者特殊符號
- 配置 maven 的環(huán)境變量
配置 MAVEN_HOME 環(huán)境變量名稱對應的值為:maven 軟件的解壓路徑
配置 PATH 環(huán)境變量名稱對應的值:%MAVEN_HOME%/BIN - 檢查 maven 的環(huán)境變量配置是否完成
mvn -v 是否顯示maven相關信息,沒有顯示表示maven 未配置成功
2.快速創(chuàng)建 maven 項目
- mvn archetype:generate -DgroupId=com.xingxue.mavendemo -DartifactId=mavendemo-day1 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
-DgroupId : maven 項目的名稱
-DartifactId : maven 項目模塊名稱
-DarchetypeArtifactId :使用maven 的骨架(工程結構)
3.maven 項目工程結構
----| maven 項目模塊文件夾
??---|src 文件
????---|main 主代碼
??????---| java 文件夾:將來都放包
??????---| resouces 文件夾:將來放配置文件
????---|test 測試代碼
??????---| java 文件夾:將來都放包
??????---| resouces 文件夾:將來放配置文件
??---|pom.xml pom文件
- maven 常用命令:
編譯命令:mvn compile
清除命令: mvn clean
測試命令: mvn test
打包命令: mvn package
安裝命令:mvn install
4.maven 坐標
站在 maven 軟件的角度看 項目怨规,每個項目都是一個構建而已陌宿,一個項目如果要分模塊,可以把每個模塊看成一個構建波丰。一個構建要依賴其他的構建壳坪,如何去引用其他構建,三坐標來描述一個構建掰烟。
三坐標:gav
groupId:描述項目名稱(帶個組織公司的域名)eg:com.xingxuecn.crm
artifactId:描述項目的模塊 eg:crm-service
version:模板的版本號 eg:1.0三坐標在 pom 文件中進行描述
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.xingxue.mavendemo</groupId>
<artifactId>mavendemo-day2</artifactId>
<version>1.0-SNAPSHOT</version>
artifactId + version = 打成jar 的名稱
eg:mavendemo-day2-1.0-SNAPSHOT.jar構建在倉庫中的路徑 = groupId+artifactId+1.0-SNAPSHOT路徑下
pom 文件:(project object model)爽蝴,該文件用于來描述模塊的信息的,不僅來描述模塊的三坐標纫骑,將來還要描述依賴管理的插件以及jar包等信息
-
修改 中央倉庫的地址:
5.依賴管理
依賴包具有傳遞性蝎亚,如果有一個包要依賴其他,其他的包也會同時下載
eg:下載 struts2的包先馆,只需要導入 struts2-core包发框,就會依賴的下載其他的包
<dependencies>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.34</version>
</dependency>
</dependencies>
依賴包的圖如下:
查詢構建的三坐標網站:http://mvnrepository.com/
6.倉庫管理
倉庫將來就是用于存放一些 jar 包以及 maven 插件(編譯插件、打包的插件......)
- 倉庫分類
本地倉庫 : .m2文件夾 (倉庫)
私服 :公司搭建的 maven 倉庫
中央倉庫:官方 http://repo1.maven.org/maven2
遠程倉庫:非官方 (鏡像地址 ailibaba maven 鏡像):http://maven.aliyun.com/nexus/content/groups/public/
本地倉庫 --------------------> 私服 ------------------->遠程倉庫
7.生命周期
Maven有三套相互獨立的生命周期煤墙,請注意這里說的是“三套”梅惯,而且“相互獨立”顾患,初學者容易將Maven的生命周期看成一個整體,其實不然个唧。這三套生命周期分別是:
Clean Lifecycle 在進行真正的構建之前進行一些清理工作江解。
Default Lifecycle 構建的核心部分,編譯徙歼,測試犁河,打包,部署等等魄梯。
Site Lifecycle 生成項目報告桨螺,站點,發(fā)布站點酿秸。
注意:它們是相互獨立的灭翔,你可以僅僅調用clean來清理工作目錄,僅僅調用site來生成站點辣苏。當然你也可以直接運行 mvn clean install site 運行所有這三套生命周期肝箱。
mvn install : 編譯 、 測試 稀蟋、 打包 煌张、 安裝,這就是一套默認的構建生命周期
mvn clean: 構建輸出的清理
mvn clean install : 先執(zhí)行 清理退客,然后編譯 骏融、 測試 、 打包 萌狂、 安裝
常用兩套生命周期來玩: mvn clean test 档玻、 mvn clean compile、 mvn clean package....
8. maven 軟件 集成到 Eclipse茫藏,利用 Eclipse 自帶的 maven 插件
- Eclipse 自帶的 maven 插件 m2Eclipse 插件误趴。
-
使用 eclipse 創(chuàng)建 maven jar工程
-
使用 eclipse 創(chuàng)建 maven war工程