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

Maven排除依賴和可選依賴的使用方法

 更新時(shí)間:2023年06月06日 11:07:32   作者:小日子呀  
我們知道Maven依賴具有傳遞性,例如A依賴于B,B依賴于C,在不考慮依賴范圍等因素的情況下,Maven會(huì)根據(jù)依賴傳遞機(jī)制,將間接依賴C 引入到A中,但如果A出于某種原因,希望將間接依賴C排除,那該怎么辦呢,Maven為用戶提供了兩種解決方式排出和可選

排除依賴

假設(shè)存在這樣的依賴關(guān)系,A 依賴于 B,B 依賴于 X,B 又依賴于 Y。B 實(shí)現(xiàn)了兩個(gè)特性,其中一個(gè)特性依賴于 X,另一個(gè)特性依賴于 Y,且兩個(gè)特性是互斥的關(guān)系,用戶無(wú)法同時(shí)使用兩個(gè)特性,所以 A 需要排除 X,此時(shí)就可以在 A 中將間接依賴 X 排除。

排除依賴是通過(guò)在 A 中使用 exclusions 元素實(shí)現(xiàn)的,該元素下可以包含若干個(gè) exclusion 子元素,用于排除若干個(gè)間接依賴,示例代碼如下。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.biancheng.www</groupId>
    <artifactId>A</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>net.biancheng.www</groupId>
            <artifactId>B</artifactId>
            <version>1.0-SNAPSHOT</version>
            <exclusions>
                <!-- 設(shè)置排除 -->
                <!-- 排除依賴必須基于直接依賴中的間接依賴設(shè)置為可以依賴為 false -->
                <!-- 設(shè)置當(dāng)前依賴中是否使用間接依賴 -->
                <exclusion>
                    <!--設(shè)置具體排除-->
                    <groupId>net.biancheng.www</groupId>
                    <artifactId>X</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
</project>

關(guān)于 exclusions 元素及排除依賴說(shuō)明如下:

  • 排除依賴是控制當(dāng)前項(xiàng)目是否使用其直接依賴傳遞下來(lái)的接間依賴;
  • exclusions 元素下可以包含若干個(gè) exclusion 子元素,用于排除若干個(gè)間接依賴;
  • exclusion 元素用來(lái)設(shè)置具體排除的間接依賴,該元素包含兩個(gè)子元素:groupId 和 artifactId,用來(lái)確定需要排除的間接依賴的坐標(biāo)信息;
  • exclusion 元素中只需要設(shè)置 groupId 和 artifactId 就可以確定需要排除的依賴,無(wú)需指定版本 version。

可選依賴

與上文的應(yīng)用場(chǎng)景相同,也是 A 希望排除間接依賴 X,我們還可以在 B 中將 X 設(shè)置為可選依賴。

設(shè)置可選依賴

在 B 的 POM 關(guān)于 X 的依賴聲明中使用 optional 元素,將其設(shè)置成可選依賴,示例配置如下。

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.biancheng.www</groupId>
    <artifactId>B</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>net.biancheng.www</groupId>
            <artifactId>X</artifactId>
            <version>1.0-SNAPSHOT</version>
            <!--設(shè)置可選依賴  -->
            <optional>true</optional>
        </dependency>
    </dependencies>
</project>

關(guān)于 optional 元素及可選依賴說(shuō)明如下:

  • 可選依賴用來(lái)控制當(dāng)前依賴是否向下傳遞成為間接依賴;
  • optional 默認(rèn)值為 false,表示可以向下傳遞稱為間接依賴;
  • 若 optional 元素取值為 true,則表示當(dāng)前依賴不能向下傳遞成為間接依賴。

排除依賴 VS 可選依賴 

排除依賴和可選依賴都能在項(xiàng)目中將間接依賴排除在外,但兩者實(shí)現(xiàn)機(jī)制卻完全不一樣。

  • 排除依賴是控制當(dāng)前項(xiàng)目是否使用其直接依賴傳遞下來(lái)的接間依賴;
  • 可選依賴是控制當(dāng)前項(xiàng)目的依賴是否向下傳遞;
  • 可選依賴的優(yōu)先級(jí)高于排除依賴;
  • 若對(duì)于同一個(gè)間接依賴同時(shí)使用排除依賴和可選依賴進(jìn)行設(shè)置,那么可選依賴的取值必須為 false,否則排除依賴無(wú)法生效。

到此這篇關(guān)于Maven排除依賴和可選依賴的使用方法的文章就介紹到這了,更多相關(guān)Maven排除依賴和可選依賴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis找不到mapper文件的實(shí)現(xiàn)

    MyBatis找不到mapper文件的實(shí)現(xiàn)

    這篇文章主要介紹了MyBatis找不到mapper文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 如何在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例(圖文)

    如何在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例(圖文)

    這篇文章主要介紹了如何在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SpringBoot整合Web開(kāi)發(fā)之Json數(shù)據(jù)返回的實(shí)現(xiàn)

    SpringBoot整合Web開(kāi)發(fā)之Json數(shù)據(jù)返回的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot整合Web開(kāi)發(fā)其中Json數(shù)據(jù)返回的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Java基礎(chǔ)之Comparable與Comparator概述

    Java基礎(chǔ)之Comparable與Comparator概述

    這篇文章主要介紹了Java基礎(chǔ)之Comparable與Comparator詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Netty分布式源碼分析監(jiān)聽(tīng)讀事件

    Netty分布式源碼分析監(jiān)聽(tīng)讀事件

    這篇文章主要介紹了Netty分布式監(jiān)聽(tīng)讀事件方法的代碼跟蹤解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • springcloud實(shí)現(xiàn)注冊(cè)中心Eureka

    springcloud實(shí)現(xiàn)注冊(cè)中心Eureka

    這篇文章主要介紹了springcloud實(shí)現(xiàn)注冊(cè)中心Eureka,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • springboot中poi使用操作方法

    springboot中poi使用操作方法

    在項(xiàng)目中,有很多對(duì)excel的操作,大都數(shù)時(shí)候我們都會(huì)使用poi工具類(lèi),本文將介紹poi的一些使用方法,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • 詳解MyBatis resultType與resultMap中的幾種返回類(lèi)型

    詳解MyBatis resultType與resultMap中的幾種返回類(lèi)型

    本文主要介紹了MyBatis resultType與resultMap中的幾種返回類(lèi)型,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 淺析如何將多個(gè)SpringBoot項(xiàng)目打包到一個(gè)Docker容器中

    淺析如何將多個(gè)SpringBoot項(xiàng)目打包到一個(gè)Docker容器中

    在現(xiàn)代軟件開(kāi)發(fā)中,Docker已成為一種流行的容器化技術(shù),能夠簡(jiǎn)化應(yīng)用的部署和管理,本文將詳細(xì)介紹如何將多個(gè)Spring Boot項(xiàng)目打包到一個(gè)Docker容器中,希望對(duì)大家有所幫助
    2024-10-10
  • Spring @OnApplicationEvent用法示例小結(jié)(典型用法)

    Spring @OnApplicationEvent用法示例小結(jié)(典型用法)

    這篇文章主要介紹了Spring @OnApplicationEvent用法示例小結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-06-06

最新評(píng)論

安宁市| 正定县| 河东区| 孟州市| 怀化市| 双柏县| 鄂托克前旗| 上饶县| 祁阳县| 灵川县| 潞城市| 新晃| 汉沽区| 呼图壁县| 秦皇岛市| 措勤县| 焉耆| 潞城市| 华亭县| 铜山县| 灌南县| 诸暨市| 营山县| 平阳县| 武穴市| 布拖县| 泉州市| 江西省| 富裕县| 定兴县| 拜城县| 定安县| 若羌县| 东丰县| 乌拉特后旗| 天柱县| 富锦市| 彰化县| 紫阳县| 师宗县| 宾川县|