1.什么是Maven Maven 是一個項目管理工具,它包含了一個項目對象模 型 (POM:Project Object Model),一組標(biāo)準(zhǔn)集合,一個項目生命周期(Project Lifecycle),一個依賴管 理系統(tǒng)(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(biāo) (goal)的邏輯。 2.Maven 的兩個精典作用 2.1 Maven 的依賴管理 Maven 的一個核心特性就是依賴管理。當(dāng)我們涉及到多模塊的項目(包含成百個模塊或者子項目),管理依賴就變成 一項困難的任務(wù)。Maven 展示出了它對處理這種情形的高度控制。傳統(tǒng)的 WEB 項目中,我們必須將工程所依賴的 jar 包復(fù)制到工程中,導(dǎo)致了工程的變得很大。那么 maven 工程是如何使得工程變得很少呢?如下: 項目對象模型(Project Object Model) 每個maven工程中都有一個pom.xml文件(核心配置文件),通過pom.xml文件可以定義項目的坐標(biāo)、項目依賴、項目信息以及插件目標(biāo)等。例如,有下面這樣一個pom.xml文件,你可以清楚地看到該文件里面定義了工程所依賴的jar包、本工程的坐標(biāo)以及打包運行方式等。 依賴管理系統(tǒng)(Dependency Management System) maven的基礎(chǔ)核心,通過maven的依賴管理對項目所依賴的jar包進行統(tǒng)一規(guī)范的管理。例如,項目依賴Struts2.3.24,通過在pom.xml文件中定義其依賴即可將Struts2的jar包自動加入到工程中,如下所示便是Struts2.3.24的依賴定義。
2.2 項目的一鍵構(gòu)建 我們的項目,往往都要經(jīng)歷編譯、測試、運行、打包、安裝 ,部署等一系列過程。什么是構(gòu)建?指的是項目從編譯、測試、運行、打包、安裝 ,部署整個過程都交給 maven 進行管理,這個 過程稱為構(gòu)建。一鍵構(gòu)建 指的是整個構(gòu)建過程,使用 maven 一個命令可以輕松完成整個工作。 3.Maven 常用命令 3.1 compile compile 是 maven 工程的編譯命令,作用是將 src/main/java 下的文件編譯為 class 文件輸出到 target 目錄下。 3.2 test test 是 maven 工程的測試命令 mvn test,會執(zhí)行 src/test/java 下的單元測試類。 3.3 clean clean 是 maven 工程的清理命令,執(zhí)行 clean 會刪除 target 目錄及內(nèi)容。 3.4 package package 是 maven 工程的打包命令,對于 java 工程執(zhí)行 package 打成 jar 包,對于 web 工程打成 war 包 3.5 install install 是 maven 工程的安裝命令,執(zhí)行 install 將 maven 打成 jar 包或 war 包發(fā)布到本地倉庫。從運行結(jié)果中,可以看出:當(dāng)后面的命令執(zhí)行時,前面的操作過程也都會自動執(zhí)行 4.Maven 倉庫 本地倉庫 :用來存儲從遠程倉庫或中央倉庫下載的插件和 jar 包,項目使用一些插件或 jar 包, 優(yōu)先從本地倉庫查找 默認本地倉庫位置在 ${user.dir}/.m2/repository,${user.dir}表示 windows 用戶目錄。 遠程倉庫:如果本地需要插件或者 jar 包,本地倉庫沒有,默認去遠程倉庫下載。遠程倉庫可以在互聯(lián)網(wǎng)內(nèi)也可以在局域網(wǎng)內(nèi)。 中央倉庫 :在 maven 軟件中內(nèi)置一個遠程倉庫地址http://repo1./maven2 ,它是中央倉庫,服務(wù)于整個互聯(lián)網(wǎng),它是由 Maven 團隊自己維護,里面存儲了非常全的 jar 包,它包 含了世界上大部分流行的開源項目構(gòu)件。 |
|