91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Maven依賴管理方法怎么使用

發布時間:2022-08-30 11:48:24 來源:億速云 閱讀:170 作者:iii 欄目:開發技術

這篇文章主要介紹了Maven依賴管理方法怎么使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Maven依賴管理方法怎么使用文章都會有所收獲,下面我們一起來看看吧。

    一、依賴傳遞

    1. 直接依賴與間接依賴

    pom.xml 聲明了的依賴是直接依賴,依賴中又包含的依賴就是間接依賴(直接依賴的直接依賴),間接依賴雖然未被聲明,但也是依賴所必須的依賴,同時間接依賴中的資源也可以直接使用

    比如 A 依賴了 B,B 依賴了 C,那么 A 也就間接的依賴了 C,如果沒有 C,那么 A 和 B 都無法正常運行,A 也可以直接使用 C 的內容,而可以不必再聲明 C

    實例如 spring-webmvc:

     <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>5.2.10.RELEASE</version>
    </dependency>

    學習 Spring 時需要導入 spring-context 依賴,但學習 SpringMVC 時,我們會導入 spring-webmvc,此時即便會用到 Spring 的功能也無需再導入 spring-context。因為 spring-webmvc 依賴了 spring-context,spring-context 作為間接依賴被引入到了項目中,可以直接使用

    Maven依賴管理方法怎么使用

    2. 依賴傳遞沖突時的優先規則

    假如一個項目中或直接或間接的多次導入了同一個依賴,就會產生依賴沖突,此時 Maven 會按照下面三種優先規則確定真正依賴的是哪個包:(主要討論不同版本的依賴,相同版本沒什么所謂)

    (1) 路徑優先

    直接依賴優先級最高,其次是間接依賴,然后是間接依賴的直接依賴,間接依賴的間接依賴 &hellip;&hellip;

    層級越深,優先級越低,或者說就近原則,離項目最近的包就是項目真正所依賴的

    如下例:

    <dependencies>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-context</artifactId>
    		<version>5.1.19.RELEASE</version>
    	</dependency>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-webmvc</artifactId>
    		<version>5.2.10.RELEASE</version>
    	</dependency>
    </dependencies>

    Maven依賴管理方法怎么使用

    示例中引入了 spring-context 5.1.19 為直接依賴,又引入 spring-webmvc 5.2.10,其中又依賴了 spring-context 5.2.10,但它是間接依賴,所以項目中所使用的 spring-context 資源是 5.1.19 版本的(但并不代表 webmvc 中的 context 版本也被改為了 5.1.19),圖中也可以看到 IDEA 在依賴后邊給出了沖突標識

    (2) 聲明優先

    相同層級的依賴資源,先被聲明的優先

    如下例:(和剛才的一樣)

    <dependencies>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-context</artifactId>
    		<version>5.1.19.RELEASE</version>
    	</dependency>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-webmvc</artifactId>
    		<version>5.2.10.RELEASE</version>
    	</dependency>
    </dependencies>

    Maven依賴管理方法怎么使用

    和上面一樣導入 spring-context 5.1.19 和 spring-webmvc 5.2.10,可以看到 context 和 webmvc 都又依賴了 aop, beans, core 等幾個包,且都是間接依賴,層級相等,但由于先聲明的 context 5.1.19,所以其中的 aop, core 等幾個包的優先級更高

    (3) 后聲明覆蓋先聲明

    同時聲明了同一個依賴的不同版本,那么先聲明的版本會被最后聲明的版本覆蓋掉(以最后一次聲明為準)

    如下例:

    <dependencies>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-context</artifactId>
    		<version>5.1.19.RELEASE</version>
    	</dependency>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-context</artifactId>
    		<version>5.2.10.RELEASE</version>
    	</dependency>
    </dependencies>

    Maven依賴管理方法怎么使用

    先聲明 spring-context 5.1.19,又聲明了 spring-context 5.2.10,最后使用的依賴版本為 5.2.10

    二、依賴管理

    分模塊開發時,合理的管理依賴能夠避免掉依賴沖突可能帶來的麻煩。

    1. 可選依賴

    用于對外隱藏本項目中使用的依賴。如果項目中將某個依賴設置為可選依賴,那么其他項目引用此項目時不會加載到可選依賴。

    只需在聲明依賴時加入 optional 標簽,設置值為 true 即可(默認為 false)

    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-context</artifactId>
    	<version>5.1.19.RELEASE</version>
    	<optional>true</optional>
    </dependency>

    如上設置后,其他項目引入此項目時,不會加載到此項目中的 spring-context 5.1.19

    2. 排除依賴

    引入依賴時,用于排除掉該依賴中傳遞來的指定依賴。

    需要在聲明依賴時加入 exclusions 標簽,內含多個 exclusion,設置 要排除的依賴坐標,不必指定版本

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.10.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    如上設置后,本項目不會加載 spring-webmvc 依賴中包含的 spring-aop 和 spring-core

    3. 可選依賴與排除依賴的異同點

    相同點:

    • 功能相同:都用于阻斷依賴的傳遞

    不同點:

    • 原理不同:可選依賴對外不透明,排除依賴有傳遞但不采用

    • 生效時機不同:可選依賴生效在項目被引入時,排除依賴生效在引入其他項目時

    關于“Maven依賴管理方法怎么使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Maven依賴管理方法怎么使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

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

    AI

    元朗区| 卫辉市| 甘孜| 丹东市| 金溪县| 介休市| 东光县| 大足县| 绩溪县| 兰坪| 沂水县| 阿尔山市| 安西县| 古田县| 永德县| 蛟河市| 章丘市| 宜宾市| 山阳县| 万荣县| 苏尼特右旗| 兴义市| 桑日县| 柞水县| 鲁甸县| 荔波县| 津市市| 宿迁市| 土默特右旗| 西乌珠穆沁旗| 沂水县| 海城市| 天峻县| 富顺县| 阳新县| 鄂托克旗| 榆社县| 株洲市| 保亭| 巴南区| 汾西县|