為什么使用 Maven
目前開發(fā)中存在的問(wèn)題:
① 一個(gè)項(xiàng)目就是一個(gè)工程.?
如果項(xiàng)目非常龐大, 就不適合繼續(xù)使用 package 來(lái)劃分模塊. 最好是每一個(gè)模塊對(duì)象一個(gè)工程, 利于分工協(xié)作.
② 項(xiàng)目中需要的 jar 包必須手動(dòng)復(fù)制到 lib目錄下.?
同樣的 jar 包, 重復(fù)出現(xiàn)在不同的項(xiàng)目工程中, 浪費(fèi)內(nèi)存, 也讓工程比較臃腫.
③ 下載的 jar 包有可能是不規(guī)范的.
④ jar 包與 jar 包之間存在依賴關(guān)系. 你必須清楚他們之間的依賴關(guān)系, 增加了學(xué)習(xí)成本.
Maven 可以解決的問(wèn)題:
① 借助 Maven 可以把一個(gè)項(xiàng)目分割為多個(gè)工程.
② 借助 Maven 可以將 jar 包僅僅保存在 “倉(cāng)庫(kù)” 中, 有需要的工程 “引用” 這個(gè)文件接口, 并不需要真的把 jar 包復(fù)制過(guò)來(lái).
③ 借助 Maven 可以以一種規(guī)范的方式下載 jar 包. 所有知名的框架的 jar 包已經(jīng)按照統(tǒng)一的規(guī)范存放在了 Maven 的中央倉(cāng)庫(kù)中.
④ 1借助 Maven 可以自動(dòng)的把依賴的 jar 包引入進(jìn)來(lái).
Maven 是什么
Maven 是一款服務(wù)于 Java 平臺(tái)的自動(dòng)化構(gòu)建工具.
構(gòu)建: 構(gòu)建就是以 “Java源文件”, “框架配置文件”, “JSP” 等資源為 “原材料”, 去 “生產(chǎn)” 一個(gè)可以運(yùn)行的項(xiàng)目的過(guò)程.
構(gòu)建過(guò)程的各個(gè)環(huán)節(jié):
【1】清理:將以前編譯得到的舊的class字節(jié)碼文件刪除崔步,為下一次編譯做準(zhǔn)備?
【2】編譯:將Java源程序編程成class字節(jié)碼文件?
【3】測(cè)試:自動(dòng)測(cè)試,自動(dòng)調(diào)用junit程序?
【4】報(bào)告:測(cè)試程序執(zhí)行的結(jié)果?
【5】打包:動(dòng)態(tài)Web工程打war包缎谷,Java工程打jar包?
【6】安裝:Maven特定的概念, 將打包得到的文件復(fù)制到 “倉(cāng)庫(kù)” 中的指定位置?
【7】部署:將動(dòng)態(tài)Web工程生成的war包復(fù)制到Servlet容器的指定目錄下井濒,使其可以運(yùn)行