自動(dòng)化構(gòu)建工具M(jìn)aven:專注服務(wù)Java平臺(tái)項(xiàng)目構(gòu)建
Maven 核心概念
Maven能夠?qū)崿F(xiàn)自動(dòng)化構(gòu)建是和它的內(nèi)部原理分不開(kāi)的,這里我們從Maven的九個(gè)核心概念入手,看看Maven是如何實(shí)現(xiàn)自動(dòng)化構(gòu)建的?
①POM
②約定的目錄結(jié)構(gòu)
③坐標(biāo)
④依賴管理
⑤倉(cāng)庫(kù)管理
⑥生命周期
⑦插件和目標(biāo)
⑧繼承
⑨聚合
Maven特點(diǎn)
那么,Maven 和 Ant 有什么不同呢?
在回答這個(gè)問(wèn)題以前,首先要強(qiáng)調(diào)一點(diǎn):Maven 和 Ant 針對(duì)構(gòu)建問(wèn)題的兩個(gè)不同方面。Ant 為 Java 技術(shù)開(kāi)發(fā)項(xiàng)目提供跨平臺(tái)構(gòu)建任務(wù)。Maven 本身描述項(xiàng)目的高級(jí)方面,它從 Ant 借用了絕大多數(shù)構(gòu)建任務(wù)。因此,由于 Maven 和 Ant代表兩個(gè)差異很大的工具。所以接下來(lái)只說(shuō)明這兩個(gè)工具的等同組件之間的區(qū)別,如表 1 所示。
Maven是一個(gè)項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型 (Project Object Model),一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期(Project Lifecycle),一個(gè)依賴管理系統(tǒng)(Dependency Management System),和用來(lái)運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。當(dāng)你使用Maven的時(shí)候,你用一個(gè)明確定義的項(xiàng)目對(duì)象模型來(lái)描述你的項(xiàng)目,然后Maven可以應(yīng)用橫切的邏輯,這些邏輯來(lái)自一組共享的(或者自定義的)插件。
Maven 有一個(gè)生命周期,當(dāng)你運(yùn)行 mvn install 的時(shí)候被調(diào)用。這條命令告訴 Maven 執(zhí)行一系列的有序的步驟,直到到達(dá)你指定的生命周期。遍歷生命周期旅途中的一個(gè)影響就是,Maven 運(yùn)行了許多默認(rèn)的插件目標(biāo),這些目標(biāo)完成了像編譯和創(chuàng)建一個(gè) JAR 文件這樣的工作。
此外,Maven能夠很方便的幫你管理項(xiàng)目報(bào)告,生成站點(diǎn),管理JAR文件,等等。
安裝 Maven 環(huán)境
1、確保安裝了java 環(huán)境:maven 本身就是java 寫的,所以要求必須安裝JDK。
查看java 環(huán)境變量:echo %JAVA_HOME%
2、下載并解壓maven 安裝程序:
maven.a(chǎn)pache.org/download.cg…
3、配置 Maven 的環(huán)境變量:
MAVEN_HOME=d:/apache-maven-3.3.9 或 者M(jìn)2_HOME=d:/apache-maven-3.3.9 path=%MAVEN_HOME%/bin; 或者%M2_HOME%/bin;
4、驗(yàn)證是否安裝成功: mvn –v
Maven 的核心概念
Maven 工程約定目錄結(jié)構(gòu)
maven 中約定的目錄結(jié)構(gòu):
Hello
|---src
|---|---main
|---|---|---java
|---|---|---resources
|---|---test
|---|---|---java
|---|---|---resources
|---pom.xml
說(shuō)明:
Hello:根目錄,也就是工程名
src:源代碼
main:主程序
java:主程序的java 源碼
resources:主程序的配置文件
test:測(cè)試程序
java:測(cè)試程序的java 源碼
resources:測(cè)試程序的配置文件
pom.xml:Maven工程的核心配置文件。
一般情況下,我們習(xí)慣上采取的措施是:約定>配置>編碼
maven 的pom.xml 記錄的關(guān)于構(gòu)建項(xiàng)目的各個(gè)方面的設(shè)置,maven 從pom.xml 文件開(kāi)始,按照助約定的工程目錄編譯,測(cè)試,打包,部署,發(fā)布項(xiàng)目。
第一個(gè)maven 工程
按照如下步驟,實(shí)現(xiàn)第一個(gè)maven 項(xiàng)目,以 maven 推薦的約定方式創(chuàng)建目錄,類文件。
某個(gè)目錄中創(chuàng)建文件夾Hello
在Hello 中創(chuàng)建子目錄 src
拷貝pom.xml 到Hello 目錄和src 是同級(jí)放置的。
進(jìn)入src 目錄,創(chuàng)建main, test 目錄
進(jìn)入main 目錄,創(chuàng)建 java,resources 目錄。
進(jìn)入java 目錄,創(chuàng)建目錄 com/bjpowernode/
在 com/bjpowernode/目錄下創(chuàng)建 HelloMaven.java 文件,定義 int addNumber(int n1,n2){ return n1+n2};
定義public static void main(String args[]) { System.out.prinltn(“Hello Manven”); //也可以調(diào)用 addNumber()方法 }
進(jìn)入到Hello 目錄在,執(zhí)行 mvn compile
進(jìn)入到target/classes 目錄執(zhí)行 java
com.bjpowernode.HelloMaven
pom 文件
即Project Object Model 項(xiàng)目對(duì)象模型。Maven 把一個(gè)項(xiàng)目的結(jié)構(gòu)和內(nèi)容抽象成一個(gè)模型,在xml 文件中進(jìn)行聲明,以方便進(jìn)行構(gòu)建和描述, pom.xml 是 Maven 的靈魂。所以,maven 環(huán)境搭建好之后,所有的學(xué)習(xí)和操作都是關(guān)于pom.xml 的。
pom.xml 初識(shí):

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
即日-6.16立即報(bào)名>> 【在線會(huì)議】Solution Talks |Computex 2025關(guān)鍵趨勢(shì)深讀
-
6月20日立即下載>> 【白皮書(shū)】精準(zhǔn)測(cè)量 安全高效——福祿克光伏行業(yè)解決方案
-
7月3日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身機(jī)器人動(dòng)力電池技術(shù)應(yīng)用大會(huì)
推薦專題
- 1 AI 眼鏡讓百萬(wàn) APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語(yǔ)權(quán)
- 3 深度報(bào)告|中國(guó)AI產(chǎn)業(yè)正在崛起成全球力量,市場(chǎng)潛力和關(guān)鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級(jí)獨(dú)角獸:獲上市公司戰(zhàn)投,干人形機(jī)器人
- 5 國(guó)家數(shù)據(jù)局局長(zhǎng)劉烈宏調(diào)研格創(chuàng)東智
- 6 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 7 百億AI芯片訂單,瘋狂傾銷中東?
- 8 Robotaxi新消息密集釋放,量產(chǎn)元年誰(shuí)在領(lǐng)跑?
- 9 格斗大賽出圈!人形機(jī)器人致命短板曝光:頭腦過(guò)于簡(jiǎn)單
- 10 為何全球AI巨頭都在搶?MCP協(xié)議背后的暴富玄機(jī)大公開(kāi)!