Maven環境搭建與簡述
面試知識
Maven環境搭建:
下載,將maven解壓到一個不含有中文和空格的目錄中
電腦上需安裝java環境,將JAVA_HOME/bin 配置環境變數path
配置 MAVEN_HOME ,安裝目錄(bin的上一級)
將 %MAVEN_HOME%/bin 加入環境變數 path
通過 mvn -v命令檢查 maven是否安裝成功。
Maven是Apache下的一個純java開發的開源專案,它是一個專案管理工具,使用maven對java專案進行構建、依賴管理。
傳統的使用eclipse構建專案的過程如下:
構建過程如下:
1)在eclipse中建立一個java web工程
2)在工程中編寫原始碼及配置檔案等
3)對原始碼進行編譯,java檔案編譯成class檔案
4)執行Junit單元測試
5)將工程打成war包部署至tomcat執行
maven將專案構建的過程進行標準化,每個階段使用一個命令完成:
上圖中部分階段對應命令如下:
清理階段對應maven的命令是clean,清理輸出的class檔案
編譯階段對應maven的命令是compile,將java程式碼編譯成class檔案。
打包階段對應maven的命令是package,java工程可以打成jar包,web包可以打成war包
執行一個maven工程(web工程)需要一個命令:tomat:run
maven工程構建的優點:
1、一個命令完成構建、執行,方便快捷。
2、maven對每個構建階段進行規範,非常有利於大型團隊協作開發。
maven專案管理所依賴的jar包不需要手動向工程新增jar包,只需要在pom.xml(maven工程的配置檔案)新增jar包的座標,自動從maven倉庫中下載jar包、執行。
使用maven依賴管理新增jar的好處:
1、通過pom.xml檔案對jar包的版本進行統一管理,可避免版本衝突。
2、maven團隊維護了一個非常全的maven倉庫,裡邊包括了當前使用的jar包,maven工程可以自動從maven倉庫下載jar包,非常方便。
使用maven的好處
1、一步構建
maven對專案構建的過程進行標準化,通過一個命令即可完成構建過程。
2、依賴管理
maven工程不用手動導jar包,通過在pom.xml中定義座標從maven倉庫自動下載,方便且不易出錯。
3、maven的跨平臺,可在window、linux上使用。
4、maven遵循規範開發有利於提高大型團隊的開發效率,降低專案的維護成本,大公司都會考慮使用maven來構建專案。
Maven倉庫的概念:
maven的工作需要從倉庫下載一些jar包,如下圖所示,本地的專案A、專案B等都會通過maven軟體從遠端倉庫(可以理解為網際網路上的倉庫)下載jar包並存在本地倉庫,本地倉庫 就是本地資料夾,當第二次需要此jar包時則不再從遠端倉庫下載,因為本地倉庫已經存在了,可以將本地倉庫理解為快取,有了本地倉庫就不用每次從遠端倉庫下載了。
- 本地倉庫 :用來儲存從遠端倉庫或中央倉庫下載的外掛和jar包,專案使用一些外掛或jar包,優先從本地倉庫查詢
預設本地倉庫位置在 ${user.dir}/.m2/repository,${user.dir}表示windows使用者目錄。
在MAVE_HOME/conf/settings.xml檔案中配置本地倉庫位置:
- 遠端倉庫:如果本地需要外掛或者jar包,本地倉庫沒有,預設去遠端倉庫下載。
遠端倉庫可以在網際網路內也可以在區域網內。
中央倉庫 :在maven軟體中內建一個遠端倉庫地址http://repo1.maven.org/maven2 ,它是中央倉庫,服務於整個網際網路,它是由Maven團隊自己維護,裡面儲存了非常全的jar包,它包含了世界上大部分流行的開源專案構件。
全域性setting與使用者setting
maven倉庫地址、私服等配置資訊需要在setting.xml檔案中配置,分為全域性配置和使用者配置。
在maven安裝目錄下的有 conf/setting.xml檔案,此setting.xml檔案用於maven的所有project專案,它作為maven的全域性配置。
如需要個性配置則需要在使用者配置中設定,使用者配置的setting.xml檔案預設的位置在:${user.dir} /.m2/settings.xml目錄中,${user.dir} 指windows 中的使用者目錄。
maven會先找使用者配置,如果找到則以使用者配置檔案為準,否則使用全域性配置檔案。
Maven專案工程目錄約定
Project
|-src
| |-main
| | |-java —— 存放專案的.java檔案
| | |-resources —— 存放專案資原始檔,如spring, hibernate配置檔案
|-webapp —— webapp目錄是web工程的主目錄
|-WEB-INF
|-web.xml
| |-test
| |-java ——存放所有測試.java檔案,如JUnit測試類
| |-resources —— 測試資原始檔
|-target —— 目標檔案輸出位置例如.class、.jar、.war檔案
|-pom.xml ——maven專案核心配置檔案
Eclipse整合maven
如果修改了 setting.xml檔案需要點選上圖中的“update settings”按鈕對本地倉庫重建索引,點選“Reindex”。
maven配置完成需要測試在eclipse中是否可以瀏覽maven的本地倉庫,如果可以正常瀏覽maven本地倉庫則說明eclipse整合maven已經完成。
開啟eclipse倉庫檢視,對外掛和jar包建立索引
找到Local respository本地倉庫項,點選Rebuild index重建索引