前言:
? ? ? ? 當我們創建項目的時候,第一步少不了搭建環境的相關準備工作。
? ? ? ? 那么如果想讓我們的項目做起來方便快捷,應該引入更多的管理工具,幫我們管理。
? ? ? ? Maven的出現幫我們大大解決了管理的難題!!
Maven:
? ? ? ? Maven是什么?
????????官?對于Maven的描述:
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
Maven提供的功能:?
? ? ? ? 1.項目構建 ? ? ??
? ? ? ? 2.管理依賴
項目構建:
????????Maven 提供了標準的,跨平臺(Linux, Windows, MacOS等)的?動化項?構建?式 當我們開發了?個項?之后, 代碼需要經過編譯, 測試, 打包, 發布等流程, 每次代碼的修改, 都需要經過這些流程, 如果代碼反復調試修改, 這個流程就需要反復進?, 就顯得特別?煩,, ?Maven 給我們提供了?套簡單的命令來完成項?的構建.
????????
例如:
? ? ? ? 可以通過package命令將所有.class文件打成jar包。
ar包是?種壓縮?件jar包就是把開發?員已經寫好的?些代碼進?打包. 打好的jar包就可以引?到其他項?中, 也可以直接使?這些jar包中的類和屬性. 另外也可以打成可執?jar包, 這樣的包就可以通過java -jar命令來執?。
依賴管理:
? ? ? ? 上?說到, Maven是?個項?管理?具, 通過pom.xml?件的配置獲取jar包,?不??動去添加jar包獲取的jar包, 其實就是依賴.
pom.xml 就是maven 的配置?件,?以描述項?的各種信息
? ? ? ? ?依賴是什么?
? ? ? ? 指當前項目運行時所需要的jar包。
? ? ? ? 例如:
? ? ? ? 此時該項目中需要用到數據庫MySql,那么如何將數據的資源和該項目結合,此時就可以添加數據庫的相關依賴,方便我們在項目中直接調用數據庫等與數據庫相關的操作。
< dependencies ><!-- ??放置項?的依賴坐標 , 可為多個 --></ dependencies >
< dependency >< groupId >mysql</ groupId >< artifactId >mysql-connector-java</ artifactId >< version >8.0.30</ version ></ dependency >

依賴傳遞:
? ? ? ? 還是回到最初的話題,我們為什么在創建項目的時候使用Maven,是因為Maven帶給我們一些便利,如果我們手動的去添加管理依賴會出現一些難以避免的問題:
? ? ? ? 1.添加的依賴的版本對該項目是否能使用。
? ? ? ? 2.如果一個依賴中又依賴另外的依賴,那么此時對依賴的關聯性考慮不全面。
? ? ? ? 3.如果兩個或多個依賴同時又依賴同一個依賴,此時被依賴的對象的版本不一定同時適用于兩個或多個依賴,此時就會造成依賴沖突!
但是如果此時引入Maven,它可以幫我們解決上述的幾個問題:
????????如上圖, 項?A 通過Maven 引?Jar A 時, 會?動引? Jar B 和Jar C.Jar A 和項?B就是項?A的直接依賴.Jar B, Jar C是間接依賴.
依賴排除:
? ? ? ? 當我們項目變得越來越復雜時,此時如果項?A不需要Jar B,也可以通過排除依賴的?式來實現。????????
排除依賴:指主動斷開依賴的資源。(被排除的資源?需指定版本)?
Maven Help插件:
????????當項??較復雜時, 我們就會有Jar包沖突的問題, 這時候就需要去解決依賴沖突. 解決沖突之前, 需要先找到沖突, 我們可以使?Maven Help插件來觀察包和包之間的依賴關系。
? ? ? ? (插件就是對程序的?些特定場景, 做出?些特定的功能的擴展)

安裝之后, 打開pom?件, 可以看到Jar包之間的依賴關系:
Maven倉庫:
? ? ? ? 為什么通過幾行代碼,xml格式的代碼就可以將整個jar包引入呢?
? ? ? ? ?
? ? ? ?
Maven倉庫分為兩?類: 本地倉庫 和 遠程倉庫 .其中遠程倉庫?分為 中央倉庫, 私服 和其他公共庫 !
本地倉庫:
????????本地倉庫: ??計算機上的?個?錄(?來存儲jar包) 當項?中引?對應依賴jar包后,?先會查找本地倉庫中是否有對應的jar包如果有,則在項?直接引?,如果沒有,則去中央倉庫中下載對應的jar包到本地倉庫。


中央倉庫:
????????中央倉庫: maven 軟件中內置?個遠程倉庫地址,就是中央倉庫,服務于整個互聯?. 由 Maven 團隊維護,全球唯?.
1. 訪問 https://mvnrepository.com/2. 進?查找, ?如mysql
?選擇添加jar包版本:
查看jar包坐標:
將坐標添加到pom.xml文件中:
私有服務器:
?????????
私服: ?般由公司團隊搭建的私有倉庫.

Maven設置國內源:
? ? ? ? 由于中央倉庫在國外部署,下載起來會比較慢,所以咱們選擇借助國內?些公開的遠程倉庫來下載資源接下來介紹如何設置國內源:
????????
setting.xml文件放下面了,需要的自取:
通過網盤分享的文件:settings.xml
鏈接: https://pan.baidu.com/s/1VLZrlVgShTSwQQVMVcNyzg?pwd=8888 提取碼: 8888?? ? ??
Maven 倉庫默認在國外 https://mvnrepository.com/ , 國內使?時會?較慢,我們可以更換為阿?云的倉庫也可以選擇別的倉庫, 參考: Maven 鏡像地址?全打開settings.xml, 在 mirrors 節點上,添加內容如下:<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name> 阿?云公共倉庫 </name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>以上分享的setting文件已經添加過了,可以直接使用!!
?