1.Maven前置依賴
檢查電腦是是否安裝java
2.下載maven
解壓 maven 壓縮包,
並創建相應的maven本地倉庫的路徑。
打開 conf文件夾中 修改 settings.xml 文件
2.配置環境變量
maven已經完成了安裝,我們可以通過DOS命令檢查一下我們是否安裝成功: mvn -v
3. settings.xml 的修改和研究
setting.xml的配置文件分類(更改配置的本地倉庫)
(1)直接修改Maven中conf文件夾中的setting.xml文件
注:此時更改后,所有的用戶都會受到影響,而且如果maven進行升級,那么所有的配置都會被清除,所以要提前復制和備份/conf/settings.xml文件
(2)在.m2文件夾下建立一個setting·xml文件
(3).(多說一下)項目里的pom.xml
有個優先級的,應該是pom>用戶級別>全局級別
例:如果pom中不配置,就取用戶級別,如果用戶級別也沒有配置,就取全局級別
故:一般情況下不推薦配置全局的settings.xml
第一點:鏡像的配置
setting.xml里面有個mirrors節點,用來配置鏡像URL。mirrors可以配置多個mirror,每個mirror有id,name,url,mirrorOf屬性。
- id是唯一標識一個mirror
- name貌似沒多大用,相當於描述
- url是官方的庫地址
- mirrorOf代表了一個鏡像的替代位置,例如central就表示代替官方的中央庫。
mirror也不是按settings.xml中寫的那樣的順序來查詢的。所謂的第一個並不一定是最上面的那個。
當有id為B,A,C的順序的mirror在mirrors節點中,maven會根據字母排序來指定第一個,所以不管怎么排列,一定會找到A這個mirror來進行查找,當A無法連接,出現意外的情況下,才會去B查詢。
在setting·xml中添加如下代碼:
<mirror> <!--This sends everything else to /public --> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <mirror> <!--This is used to direct the public snapshots repo in the profile below over to a different nexus group --> <id>nexus-public-snapshots</id> <mirrorOf>public-snapshots</mirrorOf> <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url> </mirror> </mirrors>
第二點:指定本地路徑和修改
這是直接修改的maven中conf中的setting.xml文件,此時配置的maven的本地倉庫是屬於用戶范圍的。
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>E:/Program/apache-maven-3.3.9/repository</localRepository> --> <localRepository>D:/repository</localRepository>
4. idea 安裝maven插件
(1)安裝maven插件
(2)對maven的maven插件進行相關配置
4.詳解pom
Maven在某個統一的位置存儲所有項目的共享的構件,這個統一的位置,我們就稱之為倉庫。(倉庫就是存放依賴和插件的地方)
任何的構件都有唯一的坐標,Maven根據這個坐標定義了構件在倉庫中的唯一存儲路徑,
pom里面的倉庫與setting.xml里的倉庫功能是一樣的。主要的區別在於:pom里的倉庫是個性化的。
比如一家大公司里的setting文件是公用的,所有項目都用一個setting文件,但各個子項目卻會引用不同的第三方庫,所以就需要在pom里設置自己需要的倉庫地址。
解讀Maven在倉庫中的存儲路徑:
- 基於groupId准備路徑,將句點分隔符轉成路徑分隔符,就是將 "." 轉換成 "/" ; example: org.testng --->org/testng
- 基於artifactId准備路徑,將artifactId連接到后面:org/testng/testng
- 使用version准備路徑,將version連接到后面:org/testng/testng/5.8
- 將artifactId於version以分隔符連字號連接到后面:org/testng/testng/5.8/tesng-5.8
- 判斷如果構件有classifier,就要在 第4項 后增加 分隔符連字號 再加上 classifier,org/testng/testng/5.8/tesng-5.8-jdk5
- 檢查構件的extension,如果extension存在,則加上句點分隔符和extension,而extension是由packing決定的,org/testng/testng/5.8/tesng-5.8-jdk5.jar
有兩種pom文件。第一個是項目級別的pom,第二種是模塊級別的pom
項目級別的pom: