亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Java如何通過Maven管理項目依賴

瀏覽:58日期:2022-08-22 18:02:00

項目的依賴

Java最大的一個優(yōu)勢之一應該是整個生態(tài)中無數(shù)的框架和API,我們創(chuàng)建實際的項目不可避免的都需要用到這些框架和API,而它們通常都是以JAR包的形式提供。我們之前在編譯項目的時候,需要在classpath上存放依賴的JAR包。而且這些外部的JAR包還會有其他依賴。我們需要遞歸地一個個去下載所有這些外部依賴,并且要確保下載的版本都是正確的,當項目越來越復雜的時候,這是極其麻煩的事情,比如碰到JAR Hell的問題。

Maven現(xiàn)在來拯救我們了,Maven可以自動幫我們做依賴管理,我們需要做的就是在POM文件里指定依賴JAR包的名稱、版本號,Maven會自動下載,遞歸地去下載所有依賴,我們可以從具體的依賴添加工作解放出來了。

通過Maven定義依賴

之前的例子是一個完全自包含的項目,不需要額外的包依賴,因為它實在太簡單了。我們來讓這個例子稍微復雜一點,在打印'Hello World!'的時候同時打印出日期和時間,我們希望使用Joda提供的時間庫來讓幫助我們簡化時間相關的處理代碼:

package com.tianmaying.mavendemo;import org.joda.time.LocalTime;public class HelloWorld { public static void main(String[] args) { LocalTime currentTime = new LocalTime(); System.out.println('The current local time is: ' + currentTime); NewComer newComer = new NewComer(); System.out.println(newComer.sayHello()); }}

我們使用Joda Time包提供的LocalTime類來獲取和打印當前時間。

這時如果我們執(zhí)行mvn compile將會報出編譯錯誤。需要將 Joda Time這個庫添加到我們的POM依賴中:

<dependencies> ... <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.2</version> </dependency> </dependencies>

上面這段XML定義了這個項目的依賴。在<depency>元素中,包含三個子元素:

<groupId> 類似于項目所屬的組織,所依賴的包也屬于某一個組織 <artifactId> 依賴包的名稱 <version> 依賴包的版本

依賴還有一個范圍(scope)的屬性,有三種取值:

compile表示這個依賴在編譯時應該存在,這是scope的默認值 provided表示這個依賴不僅在編譯時需要,同時應該在運行時也存在,比如Java Servlet API的依賴 test表示依賴在編譯和測試時需要,但是運行時不要求存在,比如JUnit的依賴,運行時是不需要的

此時運行mvn compile或者mvn package,Maven應該可以解析到Joda庫,并將其從中央倉庫下載,構建成功啦!

Maven倉庫

Maven倉庫可以認為是基于Maven的一個構件(主要時Jar包)管理工具,你可以從里面找構件,也可以往里面增加構件。如果你用過Ant就會知道,通過Ant來管理項目時,我們一般都需要一個lib文件夾,各種依賴的Jar包都會放進去,而且為了協(xié)作的一致性,通常還需要放到代碼版本管理系統(tǒng)中。現(xiàn)在輕松簡單了,基于基于依賴的信息,Maven就可以自動地以遞歸的方式下載所有的依賴,直到整個依賴樹都下載完畢并放到你的本地倉庫中。Maven倉庫本質上存儲了Jar包和元數(shù)據(jù)信息,通過原信息能夠準確定位到Jar包,從而能夠獲取和修改。

Maven有三種類型的倉庫:

本地倉庫:本地倉庫默認在用戶目錄下,包含了下載的所有依賴 中央倉庫:中央倉庫由Maven自己提供的,本地倉庫中的沒有依賴默認都會去中央倉庫查找,下載后會存放到本地倉庫 遠程倉庫:遠程倉庫是遠程服務器上可訪問的倉庫, 本質類似于中央倉庫(只不過中央倉庫是權威罷了,而且你不能亂動:)。遠程倉庫可以本地網絡中或者互聯(lián)網上,一般團隊內部會設置一個內部的遠程倉庫,這樣可以解決安全共享,網絡代理等問題。

Maven首先會從本地倉庫,然后是中央倉庫,最后如果pom文件中配置了遠程倉庫,會到遠程倉庫中查找依賴。

遠程倉庫需要配置.settings文件,需要加入類似這樣的配置:

<repositories> <repository> <id>tianmaying</id> <url>http://tianmaying.com/maven2/lib</url> </repository></repositories>

我們學習過程中,使用Maven自帶的中央倉庫就足以應付絕大多數(shù)情況了,不需要任何額外的配置。

快照依賴

Maven還提供一個非常方便的功能:快照依賴。快照依賴指的是那些還在開發(fā)中的內部依賴包。與其經常地更新版本號來獲取最新版本,不如你直接依賴項目的快照版本。快照版本的每一個build版本都會被下載到本地倉庫,即使該快照版本已經在本地倉庫了。總是下載快照依賴可以確保本地倉庫中的每一個build版本都是最新的。這對我們快速迭代開發(fā)是一個非常酷的特性。

以上就是Java如何通過Maven管理項目依賴的詳細內容,更多關于Maven管理項目依賴的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 日本一级特级毛片视频 | 久久国内精品自在自线400部o | 免费a视频在线观看 | 免费看黄色的视频 | 一级特黄录像免费播放冫 | 免费人成年短视频在线观看免费网站 | 免费人成网站尤物在线观看 | 久久免费99精品国产自在现线 | 日韩欧美在线观看视频一区二区 | 日韩毛片在线视频 | 亚洲欧美经典 | 在线观看国产精成人品 | 色一色在线观看视频网站 | 日本黄色片一级片 | 国产乱码一区二区三区四区 | 日韩欧美毛片 | 午夜影院亚洲 | 国产精品久久福利网站 | 亚洲hh| 精品一区二区三区五区六区 | 国产黄色大片网站 | 91短视频社区在线观看 | 成年美女毛片黄网站色奶头大全 | 91外围| 亚洲最大免费视频网 | 在线免费看黄的网站 | 亚洲黄色官网 | 99re66热这里只有精品首页 | 91视频官网| 午夜撸 | 中文字幕专区在线亚洲 | 国语自产自拍秒拍在线视频 | 欧美特黄a级高清免费看片 欧美特黄a级猛片a级 | 久青草视频97国内免费影视 | 精品三级三级三级三级三级 | 永久免费的啪啪免费的网址 | 深夜免费福利视频在线播放 | 久99频这里只精品23热 视频 | 草妞视频 | 欧美zzzz| 最新国产网站 |