什么是Maven及如何配置國內源實現(xiàn)自動獲取jar包的操作
???1.Maven的了解
1.1什么是Maven
在官方的文檔中對于Maven的介紹是如下所示的:Welcome to Apache Maven – Maven
翻譯過來就是: Maven是?個項?管理?具?;赑OM(Project Object Model,項?對象模型)的概念,Maven可以通 過??段描述信息來管理項?的構建,報告和?檔的項?管理?具軟件。
但是大白話就是:
Maven是?個項?管理?具, 通過pom.xml?件的配置獲取jar包,?不??動去添加jar包
1.2創(chuàng)建一個Maven項目
那么接下來就跟著小編進行操作吧~~~
注意:IDEA本?已經集成了Maven, 我們可以直接使?, ?需安裝
步驟:File -> New -> Project
如下圖所示:
然后點擊創(chuàng)建即可,此時我們就成功創(chuàng)建了一個Maven項目;
1.3Maven的核心功能
1.項目構建
Maven 提供了標準的,跨平臺(Linux, Windows, MacOS等)的?動化項?構建?式
當我們開發(fā)了?個項?之后, 代碼需要經過編譯, 測試, 打包, 發(fā)布等流程, 每次代碼的修改, 都需要經過 這些流程, 如果代碼反復調試修改, 這個流程就需要反復進?, 就顯得特別?煩,, ?Maven 給我們提供了 ?套簡單的命令來完成項目的構建
點擊右邊框的Maven按鍵:
然后點擊這里的打包按鈕,此時那么就進行打包的操作了,具體控制臺的顯示如下:
并且,我們可以發(fā)現(xiàn)此時在我們的項目創(chuàng)建的欄目中可以看到,多了一個jar為后綴的項目,就是我們所打的jar包:
解釋:
打包就是把所有的class?件, 全部放在?起, 打成jar包或者war包 jar包和war包都是?種壓縮?件
jar包:就是把開發(fā)?員已經寫好的?些代碼進?打包. 打好的jar包就可以引?到其他項?中, 也可以直 接使?這些jar包中的類和屬性.
打成可執(zhí)?jar包:這樣的包就可以通過java -jar命令來執(zhí)?
war包:可以理解為是?個web項?,??是項?的所有東西, 通常?于?站
2.管理依賴
上?說到, Maven是?個項?管理?具, 通過pom.xml?件的配置獲取jar包,?不??動去添加jar包 獲取的jar包, 其實就是依賴
依賴配置
在之前學習JDBC的時候,我們要添加mysql-connector-java的包.并且添加到項?中,此時才可以建立數(shù)據(jù)庫與idea的連接
此時我們使用Maven的時候,直接可以通過代碼操作直接導入jar包的操作,我們只需要在pom.xml中引?mysql-connector-java的依賴就可以了;
此時代碼如下所示:
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> </dependencies>
解釋:
在<dependencies>中部的所有代碼描述的就是建立依賴的坐標
注意引入代碼后一定要記得刷新頁面;
Maven管理依賴的好處
使?maven的話, 就可以避免管理所需依賴的關系。我們只需要在pom?件中, 定義直接依賴就可以 了, 由于maven的依賴具有傳遞性,所以會?動把所依賴的其他jar包也?起導?
如下圖所示:
解釋:
在Maven項目引入jar包A后,那么此時就會自動的引入jar包A所依賴的jar包,那么此時就會自動一如jar包B與jar包C;
依賴的排除
當前階段我們需要依賴的庫并不多, 但隨著項?的越來越復雜, 庫之間的依賴關系也會變得越來越復雜. 如上圖中, 如果項?A不需要Jar B,也可以通過排除依賴的?式來實現(xiàn)
此時我們主動使用代碼進行依賴的排除:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>6.0.6</version> <!--排除依賴--> <exclusions> <exclusion> <artifactId>spring-jcl</artifactId> <groupId>org.springframework</groupId> </exclusion> </exclusions> </dependency>
但是在idea中有一個插件可以幫助執(zhí)行依賴的排除;
Maven helper插件
當項??較復雜時, 我們就會有Jar包沖突的問題, 這時候就需要去解決依賴沖突. 解決沖突之前, 需要先 找到沖突, 我們可以使?Maven Help插件來觀察包和包之間的依賴關系
下載方式:
File -> Settings ->Plugins -> 搜索'Maven Help' -> 找到對應插件, 點擊Install 安裝即可, 安裝 后需要重啟下idea, 才能?效
圖示如下:
注意:下載后記得一定一定要進行重啟的操作;
然后我們點擊下面的依賴選項,可以看到依賴的關系:
此時我們可以通過手動右擊鼠標,然后就可以進行手動的刪除這里的某些依賴;
???2.Maven的倉庫
我們通過短短??代碼, 就把依賴jar包放在了項??, 具體是如何做的呢?
<dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> </dependencies>
解釋:
這個代碼, 我們稱之為 "坐標", 也就是唯?的. 在Maven中, 根據(jù) groupId、artifactId、version 的配置, 來唯?識別?個 jar 包, 缺?不可. 當我們在pom?件中配置完依賴之后, 點擊刷新, Maven會根據(jù)坐標的配置, 去倉庫?尋找Jar包, 并把他 下載下來, 添加到項?中. 這個Jar包下載的地?就稱為倉庫
Maven倉庫分為兩?類: 本地倉庫和遠程倉庫. 其中遠程倉庫?分為中央倉庫, 私服 和其他公共庫
2.1本地倉庫
本地倉庫: ??計算機上的?個?錄(?來存儲jar包) 當項?中引?對應依賴jar包后,?先會查找本地倉庫中是否有對應的jar包 • 如果有,則在項?直接引? • 如果沒有,則去中央倉庫中下載對應的jar包到本地倉庫;
本地倉庫地址可以通過Maven配置查看:
注意:小編這里的本地倉庫已經是通過了國內源的配置的(下文有講到)
2.2中央倉庫
中央倉庫: maven 軟件中內置?個遠程倉庫地址,就是中央倉庫,服務于整個互聯(lián)?. 由 Maven 團隊 維護,全球唯?.
倉庫地址:https://repo1.maven.org/maven2/
可以通過https://mvnrepository.com 這個?站來查詢并下載
我們可以把??寫好的Jar包上傳到中央倉庫(具備?定的要求), 也可以從中央倉庫下載Jar包
例如:我們進行jar包的查詢
這里由于是國外的網(wǎng)站,所以訪問比較慢,所以小編推薦使用加速器~~~
點擊進入:
注意:一般來說點擊沒有漏洞的,并且這里的使用的人數(shù)盡可能多,這里點擊8.3.0~~~
往下面進行翻,可以看到此時的依賴的代碼;
這就是我們添加進入我們idea中的依賴的代碼源,就是我們jar包的坐標;
2.3私有服務器
私服: ?般由公司團隊搭建的私有倉庫. 私服屬于某個公司,或者某個部?, 往往需要?定權限. 有了私服之后, Maven依賴下載的順序?發(fā)?了變化
如圖所示:
解釋:
1. 先從本地倉庫獲取, 本地倉庫存在, 則直接返回
2. 如果本地倉庫沒有, 就從私服請求, 私服存在該資源, 就直接返回
3. 如果私服上不存在該資源,則從中央倉庫下載, 中央倉庫不存在, 就報錯了...
4. 如果中央倉庫中存在, 就先緩存在私服上之后,再緩存到本地倉庫?, 再為Maven的下載請求提供服 務
2.4Maven設置國內源
因為中央倉庫在國外, 所以下載起來會?較慢, 所以咱們選擇借助國內?些公開的遠程倉庫來下載資源 接下來介紹, 如何設置國內源
國內使?時會?較慢,我們可以更換為阿?云 的倉庫
打開settings.xml, 在 mirrors 節(jié)點上,添加內容如下:
<mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <name>阿?云公共倉庫</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
然后將這個這個settings的xml文件添加到第一排這個文件路徑目錄上
小編這里是將這里的repository復制到新的路徑上面去了,所以這里的路徑就不是默認的;
然后這里的setting的文件就是如下:
點擊進入:小編這里使用的是sublime文本編輯器,所以具體的樣式就是如下所示的:
小編這里只截取了一小部分,所以就在你們的settings中添加就可以了,如果沒有就私信小編哦,小編為你解答~~~
???3.總結
本期總結了關于Maven在項目開發(fā)中的重要作用,從什么是Maven到理解它的核心功能,以及如何管理它的倉庫,進行jar包坐標的配置,以及如何設置國內源都進行了詳細的講述;
到此這篇關于什么是Maven,以及如何配置國內源實現(xiàn)自動獲取jar包的文章就介紹到這了,更多相關Maven自動獲取jar包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java WebSocket客戶端接收大量數(shù)據(jù)的三種方案
WebSocket是一種基于TCP協(xié)議的全雙工通信協(xié)議,它能夠在客戶端和服務器之間建立一個持久連接,實現(xiàn)實時的雙向數(shù)據(jù)傳輸,在實際應用中,有時候我們需要處理大量的數(shù)據(jù),所以本文將介紹如何使用 Java WebSocket 客戶端接收大量數(shù)據(jù),并提供一些優(yōu)化方案2023-11-11詳解Spring學習總結——Spring實現(xiàn)AOP的多種方式
這篇文章主要介紹了詳解Spring學習總結——Spring實現(xiàn)AOP的多種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01Linux下Java開發(fā)環(huán)境搭建以及第一個HelloWorld
這篇文章主要介紹了Linux下Java開發(fā)環(huán)境搭建以及第一個HelloWorld的實現(xiàn)過程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-09-09SpringBoot實現(xiàn)優(yōu)雅停機的正確方法
什么叫優(yōu)雅停機?就是向應用進程發(fā)出停止指令之后,能保證正在執(zhí)行的業(yè)務操作不受影響,直到操作運行完畢之后再停止服務。本文就來和大家聊聊SpringBoot實現(xiàn)優(yōu)雅停機的正確姿勢,希望對大家有所幫助2023-01-01