亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中maven依賴范圍的示例分析

發布時間:2021-08-30 09:21:00 來源:億速云 閱讀:129 作者:小新 欄目:開發技術

這篇文章主要介紹java中maven依賴范圍的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    1 Maven依賴范圍 

    1.1 依賴配置

    <project>
      ...
    	<dependencies>
        <denpendcy>
          <groupId></groupId>
          <artifactId></artifactId>
          <version></version>
          <type></type>
          <scope></scope>
          <optional></optional>
          <exclusions>
            <exclusion>
            	...
            </exclusion>
          </exclusions>
        </denpendcy>
      </dependencies>
    </project>

    在pom.xml文件中,根元素project下的dependencies標簽中可以包含一個或者多個dependency元素,以聲明一個或者多個項目依賴。每個依賴dependency標簽中都應該包含以下元素。

    groupId: 依賴組id,可以理解為java的包名,一般用域名倒寫

    artifactId: 可以理解為項目名或者依賴名

    version:依賴的版本

    type:依賴的類型,對應項目坐標定義的packaging,大部分情況下,該屬性不必聲明,其默認值為jar

    scope:依賴的范圍,這個對應的屬性就比較多了,后續會做詳細介紹

    optional:標記依賴是否可選

    exclusions:用來排除依賴的傳遞性,其中可以配置多個exclusion屬性,每個標簽對應著groupId、artifactId、version等三個基本屬性

    很多時候,大部分依賴聲明只包含groupId、artifactId和version這三個指定基本坐標的元素;而在一些特殊情況下,其它元素至關重要,也就是上面提到的scope、optional和exclusions。

    1.2 依賴范圍概念

    maven在編譯項目主代碼的時候需要使用一套classpath。舉例來說:

    java中maven依賴范圍的示例分析

    所以,依賴范圍就是用來控制依賴與這三種classpath(編譯classpath、測試classpath、運行classpath)的關系的。
    依賴具體范圍:scope(依賴范圍)共有五種,它們分別是compile、provided、runtime、test、system。

    java中maven依賴范圍的示例分析

    2 pom依賴傳遞性

    java中maven依賴范圍的示例分析

    在maven中,依賴傳遞是可以傳遞的,假設存在三個項目,分別是項目A,項目B,項目C。假設C依賴B,B依賴A,那么根據maven項目依賴的特征不難推出項目C也依賴于項目A.通過上圖也可以看出,在項目中直接依賴了spring-webmvc,而spring-webmvc依賴了Spring-aop,spring-beans等,也就是在項目中有依賴了spring-aop和spring-beans等等

    java中maven依賴范圍的示例分析

    3 依賴沖突解決

    在實際的 Maven 項目開發中,由于項目引入的依賴過多,遇到 jar 沖突算是一個很常見的問題了

    java中maven依賴范圍的示例分析

    ·標注一:Maven Project,Maven 項目選項;

    ·標注二:Dependencies,項目依賴;

    ·標注三:Show Dependencies,展示項目依賴圖

    點擊Show Dependencies 按鈕之后,接下來就會出現以下內容。

    java中maven依賴范圍的示例分析

    在我們發現jar包沖突之后,就可以通過exclusion進行沖突的解決

    4 分模塊構建項目

    Maven多模塊項目,適用于一些比較大的項目,通過合理的模塊拆分,實現代碼的復用,便于維護和管理。尤其是一些開源框架,也是采用多模塊的方式,提供插件集成,用戶可以根據需要配置指定的模塊

    4.1 創建一個父maven工程

    1. 新建一個maven項目,選擇存儲位置,并選擇創建一個簡單的maven工程

    2.創建第一個模塊

    3.創建第二個模塊

    4.選擇繼承的父模塊

    5.創建聚合工程C

    這種項目結構主要應用在大型項目中,多人協作開發,小型項目 或 人員配置不足情況下不建議使用; 之前因為一直沒有機會參與大型項目開發,或是這種分布式項目的搭建,網上也沒有這方面系統全面的說明 ,可能真正用到這種架構的不需要自己動手去弄,等著別人搭好進去碼代碼就可以了

    5 聚合和繼承

    Maven的聚合特性可以幫助我們把項目的多個模塊聚合在一起,使用一條命令進行構建,即一條命令實現構建多個項目;

    Maven的繼承特性可以將各個模塊相同的依賴和插件配置提取出來,在簡化POM的同時還可以促進各個模塊配置的一致性

    5.1 聚合

    <modules>
            <module>spring1</module>
            <module>spring2</module>
            <module>spring3</module>
    </modules>

    在前面的學習中,我們見過打包方式為jar和war的,但是聚合模塊的打包方式必須為pom,否則無法完成構建。

    5.2 繼承

    <parent>
    <groupId>com.baidu</groupId>
    <artifactId>miliao-rootpom</artifactId> 
    <version>2.0.3</version>
    </parent>

    可繼承的POM元素如下:

    • groupId:項目組ID,項目坐標的核心元素

    • version:項目版本,項目坐標的核心因素

    • distributionManagement:項目的部署配置

    • dependencies:項目的依賴配置

    • dependencyManagement:項目的依賴管理配置

    5.3 聚合和繼承的關系

    雖然聚合模塊和父模塊經常合二為一,但是聚合和繼承是兩個不同的概念,其實是沒有什么關系的。

    聚合模塊知道它聚合了哪些模塊,但是被聚合的模塊不知道聚合模塊的存在;

    繼承父模塊不知道子模塊的存在,但是子模塊都必須知道自己的父模塊是誰。

    以上是“java中maven依賴范圍的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    景谷| 石城县| 磐安县| 德江县| 文昌市| 贡觉县| 于田县| 甘泉县| 阳江市| 江阴市| 台东市| 八宿县| 汤原县| 永登县| 汉源县| 阳谷县| 吐鲁番市| 丽水市| 耒阳市| 湟源县| 广德县| 四川省| 谢通门县| 平定县| 安泽县| 常熟市| 冀州市| 壶关县| 迭部县| 水富县| 上高县| 舒城县| 墨脱县| 呼玛县| 堆龙德庆县| 莎车县| 泰顺县| 布尔津县| 建阳市| 新宾| 洪泽县|