最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年10月12日 11:23:17   作者:David  
這篇文章主要介紹了Java如何通過Maven管理項目依賴,幫助大家更好的理解和使用maven,感興趣的朋友可以了解下

項目的依賴

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)中?,F(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版本都會被下載到本地倉庫,即使該快照版本已經在本地倉庫了??偸窍螺d快照依賴可以確保本地倉庫中的每一個build版本都是最新的。這對我們快速迭代開發(fā)是一個非??岬奶匦浴?/p>

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

相關文章

  • Java項目中獲取路徑的絕對路徑問題和相對路徑問題

    Java項目中獲取路徑的絕對路徑問題和相對路徑問題

    這篇文章主要介紹了如何Java項目中獲取文件地址,在 Java 項目中我們經常會讀取配置文件,但是文件的路徑在獲取時我們是怎么得到的?下面我們就一起進入文章學習該內容吧,需要的朋友可以參考下
    2022-02-02
  • 詳解JAVA中使用FTPClient工具類上傳下載

    詳解JAVA中使用FTPClient工具類上傳下載

    這篇文章主要介紹了JAVA中使用FTPClient工具類上傳下載的相關資料,java 使用FTP服務器上傳文件、下載文件,需要的朋友可以參考下
    2017-08-08
  • IDEA下Servlet可能出現(xiàn)404的一些情況

    IDEA下Servlet可能出現(xiàn)404的一些情況

    相信有很多小伙伴遇到報錯都不知道怎么處理,今天特地整理了這篇文章,文中對IDEA下Servlet可能出現(xiàn)404的一些情況作了詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • SpringBoot thymeleaf的使用方法解析

    SpringBoot thymeleaf的使用方法解析

    這篇文章主要介紹了SpringBoot thymeleaf的使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • SpringSecurity實現(xiàn)動態(tài)加載權限信息的方法

    SpringSecurity實現(xiàn)動態(tài)加載權限信息的方法

    這篇文章主要介紹了SpringSecurity實現(xiàn)動態(tài)加載權限信息,本文給大家介紹的非常詳細,對大家的學習或工作具有一定需要的朋友可以參考下
    2022-01-01
  • 快速解決code唯一碼(java)的簡便方法

    快速解決code唯一碼(java)的簡便方法

    下面小編就為大家?guī)硪黄焖俳鉀Qcode唯一碼(java)的簡便方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 反對使用Spring封裝的多線程類原因

    反對使用Spring封裝的多線程類原因

    這篇文章主要介紹了反對使用Spring封裝的多線程類原因,文章圍繞主題展開詳細內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Java?Guava異步編程實踐

    Java?Guava異步編程實踐

    今天咱們要聊的是Guava在異步編程中的應用,讓我們搞清楚為什么要用Guava來處理異步任務,在Java的世界里,異步編程是個老話題了,但它依舊非常關鍵,它能讓咱們的應用更高效,尤其是在處理那些耗時的I/O操作
    2023-12-12
  • Maven配置文件修改及導入第三方jar包的實現(xiàn)

    Maven配置文件修改及導入第三方jar包的實現(xiàn)

    本文主要介紹了Maven配置文件修改及導入第三方jar包的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-08-08
  • Java Web最近面試題匯總

    Java Web最近面試題匯總

    在本篇文章里小編給大家整理的是一篇關于Java Web最近面試題匯總內容,需要的朋友們可以學習下。
    2020-02-02

最新評論

阜南县| 阜平县| 遂平县| 南开区| 环江| 星座| 新安县| 云阳县| 澳门| 德钦县| 崇明县| 贡觉县| 亚东县| 十堰市| 桂东县| 衡南县| 合水县| 从江县| 庆云县| 获嘉县| 瑞金市| 青海省| 邯郸市| 扎囊县| 翼城县| 綦江县| 福清市| 郸城县| 泽普县| 虎林市| 巴青县| 瓦房店市| 嘉峪关市| 合山市| 朔州市| 农安县| 方正县| 清涧县| 永川市| 华阴市| 巨鹿县|