1. Maven 基本配置
1.1 環(huán)境變量
環(huán)境變量中添加「M2_HOME」為 maven 主目錄
在 path 中添加「;%M2_HOME%\bin」
1.2 使用 Maven 阿里云中央倉(cāng)庫(kù)
修改 Maven 根目錄下 conf 文件夾中的 文件,內(nèi)容如下:
2. 創(chuàng)建基于 Maven 的 Java 項(xiàng)目
2.1 使用命令行創(chuàng)建
Maven 使用原型「archetype」插件創(chuàng)建工程。要?jiǎng)?chuàng)建一個(gè)簡(jiǎn)單的 Java 應(yīng)用,我們將使用 maven-archetype-quickstart 插件。
Maven 創(chuàng)建目錄有兩種方式:「archetype 可自動(dòng)創(chuàng)建目錄骨架」
在 cmd 中直接執(zhí)行「mvn archetype:generate」按照提示進(jìn)行選擇,選擇如下 Archetype:
使用單行命令創(chuàng)建項(xiàng)目,命令格式如下:
示例如下:
2.2 使用InteliJ IDEA 創(chuàng)建
在 InteliJ IDEA 中創(chuàng)建基礎(chǔ)的示例 Maven 項(xiàng)目,依舊選擇:
如圖所示:
3. 目錄結(jié)構(gòu)
3.1 Maven 項(xiàng)目的目錄結(jié)構(gòu)
在 Maven 項(xiàng)目的根目錄下,有如下必要的目錄結(jié)構(gòu):
src
resources「存放一些資源文件」
java
package
resources「存放一些資源文件」
java
package「自定義的包」
main
test
pom.xml
如下圖所示:
3.2 項(xiàng)目根目錄下「pom.xml」的典型結(jié)構(gòu):
4. Maven 操作
4.1 構(gòu)建命令
mvn -v 版本。
mvn compile 編譯。
mvn test 測(cè)試。
mvn package 打包。
mvn clean 清除maven生成的target目錄。
mvn install 將生成的jar安裝到本地倉(cāng)庫(kù)中。
mvn compile: 編譯主程序源代碼,不會(huì)編譯test目錄的源代碼。第一次運(yùn)行時(shí),會(huì)下載相關(guān)的依賴包,可能會(huì)比較費(fèi)時(shí)
mvn test: 運(yùn)行應(yīng)用程序中的單元測(cè)試,會(huì)生成 target 文件夾:
主程序編譯的字節(jié)碼文件在 classes 下面
測(cè)試程序放在 test-classes 下
所生成的測(cè)試報(bào)告放在 surefire-reports 文件夾下
mvn package 會(huì)在target目錄下生成 Jar 包,如「maven01-model-0.0.1SNAPSHPT.jar」
4.2 生命周期
Maven的生命周期大概如下,這幾個(gè)命令對(duì)應(yīng)了一個(gè)項(xiàng)目的完整的構(gòu)建過(guò)程,這幾個(gè)步驟對(duì)應(yīng)的都有插件來(lái)完成:
clean 「清理」
compile 「編譯」
test 「測(cè)試」
package 「打包」
install「安裝到本地庫(kù)」
Maven的生命周期分為三個(gè)獨(dú)立的生命周期(每一個(gè)生命周期有分為若干個(gè)階段,其中defaul是最核心的一個(gè)):
clean「清理項(xiàng)目」
default「構(gòu)建項(xiàng)目」
site「生成項(xiàng)目的站點(diǎn)」
4.2.1 clean「清理項(xiàng)目」
pre-clean 「執(zhí)行清理前的工作」
clean「清理上一次構(gòu)建生成的所有文件」
post-clean「執(zhí)行清理后的文件」
4.2.2 default「構(gòu)建項(xiàng)目」(最核心)
compile 「編譯」
test 「測(cè)試」
package 「打包」
install「安裝到本地庫(kù)」
4.2.3 site「生成項(xiàng)目站點(diǎn)」
pre-site「在生成項(xiàng)目站點(diǎn)之前要完成的工作」
site「生成項(xiàng)目的站點(diǎn)文檔」
post-site「在生成項(xiàng)目站點(diǎn)后要完成的工作」
site-deploy「發(fā)布生成的站點(diǎn)到服務(wù)器上」
注意
每個(gè)獨(dú)立的生命周期,只需執(zhí)行其中一個(gè)命令,此時(shí)會(huì)從該生命周期的開(kāi)始命令順序執(zhí)行到該命令。
Maven的生命周期對(duì)應(yīng)的命令是順序執(zhí)行的,如果沒(méi)有人為的順序的一個(gè)個(gè)執(zhí)行,那么Maven會(huì)默認(rèn)的自動(dòng)運(yùn)行。
如執(zhí)行「mvn clean test」,則此時(shí)會(huì)順序執(zhí)行「pre-clean clean post-clean compile test」
如執(zhí)行「mvn test」,則此時(shí)會(huì)順序執(zhí)行「compile test」
聯(lián)系客服