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

Maven中的<scope>元素使用解讀

 更新時(shí)間:2025年09月03日 14:49:44   作者:minh_coo  
Maven的<scope>控制依賴(lài)范圍和生命周期,影響編譯、測(cè)試、運(yùn)行階段的可見(jiàn)性及打包,常見(jiàn)類(lèi)型包括compile、provided、runtime等,用于管理依賴(lài)傳遞與沖突解決,如使用exclusions排除沖突

Maven的<scope>元素

概述

在 Maven 中,<scope> 元素用于控制依賴(lài)項(xiàng)的作用范圍生命周期,即定義依賴(lài)項(xiàng)在項(xiàng)目的編譯、測(cè)試、運(yùn)行等階段的可見(jiàn)性,以及是否會(huì)被打包到最終產(chǎn)物中。

正確使用 <scope> 可以幫助我們優(yōu)化項(xiàng)目的構(gòu)建過(guò)程,減少不必要的依賴(lài)沖突,并提高構(gòu)建效率。

常見(jiàn)的<scope>取值及其含義

scope作用范圍場(chǎng)景示例
compile默認(rèn)值。覆蓋編譯(compile)、測(cè)試(test)、運(yùn)行(runtime)所有階段,依賴(lài)會(huì)被直接包含到項(xiàng)目的 classpath 中,且會(huì)隨著項(xiàng)目打包(如 JAR/WAR)一起發(fā)布。大多數(shù)業(yè)務(wù)依賴(lài)(如 Spring、Jackson 等)默認(rèn)使用此范圍
provided僅在編譯(compile)和測(cè)試(test)階段有效,運(yùn)行(runtime)階段由外部環(huán)境(如應(yīng)用服務(wù)器)提供依賴(lài),依賴(lài)不會(huì)被打包到項(xiàng)目產(chǎn)物中(因?yàn)檫\(yùn)行時(shí)由外部提供)。容器提供的依賴(lài):Servlet API(如 javax.servlet:javax.servlet-api)
runtime在測(cè)試(test)和運(yùn)行(runtime)階段有效,編譯(compile)階段不可用。JDBC 驅(qū)動(dòng)(如 mysql:mysql-connector-java)
test僅在測(cè)試(test)階段有效(包括測(cè)試代碼的編譯和運(yùn)行),依賴(lài)不會(huì)被打包到最終產(chǎn)物中,也不會(huì)影響主代碼的運(yùn)行。測(cè)試框架(如 JUnit、Mockito)
system與 provided 類(lèi)似(僅編譯和測(cè)試階段有效),但依賴(lài)需要顯式指定本地文件路徑(非 Maven 倉(cāng)庫(kù)),通過(guò) <systemPath> 手動(dòng)指定依賴(lài)的本地路徑。不推薦使用,Maven 3.0 后已標(biāo)記為過(guò)時(shí),建議改用 provided 或自定義倉(cāng)庫(kù)
import在 <dependencyManagement> 中使用。僅用于導(dǎo)入其他 POM 的 <dependencyManagement> 依賴(lài)配置,不會(huì)實(shí)際添加依賴(lài)到當(dāng)前項(xiàng)目,而是將目標(biāo) POM 的依賴(lài)管理規(guī)則合并到當(dāng)前項(xiàng)目的依賴(lài)管理中。導(dǎo)入 Spring Boot 的 spring-boot-dependencies

依賴(lài)傳遞性

Maven 依賴(lài)的傳遞性會(huì)受 <scope> 影響。

假設(shè) A → B → C,即 A 依賴(lài) B,B 依賴(lài) C:

  • compile:C 會(huì)傳遞給 A(A 的 compile 范圍)
  • runtime:C 會(huì)傳遞給 A(A 的 runtime 范圍)
  • test / provided:C 不會(huì)傳遞給 A(僅 B 自己需要)

依賴(lài)沖突

當(dāng)多個(gè)依賴(lài)項(xiàng)引入相同的依賴(lài),這時(shí)就可能出現(xiàn)版本沖突。

如:在projectA引入B依賴(lài),B依賴(lài)又引入C依賴(lài)(版本1.0),假設(shè)這時(shí)projectA再引入D依賴(lài),且D依賴(lài)也引入C依賴(lài)(版本2.0)。這時(shí)就會(huì)出現(xiàn)依賴(lài)沖突。

沖突解決原則

1、就近原則

A --> B --> C(版本1.0)

A --> C(版本2.0)

這時(shí)會(huì)引入2.0的C

2、第一聲明者原則

A -> B -> C(版本1.0)

A -> D -> C(版本2.0)

這時(shí)會(huì)引入1.0的C

解決方案

使用<exclusions> 標(biāo)簽排除沖突的依賴(lài),只保留一個(gè)依賴(lài)。

如:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.hibernate.validator</groupId>
                    <artifactId>hibernate-validator</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java收集的雪花算法代碼詳解

    Java收集的雪花算法代碼詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)雪花算法的詳細(xì)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • 面試時(shí)必問(wèn)的JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)詳解

    面試時(shí)必問(wèn)的JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)詳解

    這篇文章主要介紹了JVM運(yùn)行時(shí)數(shù)據(jù)區(qū)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Springboot任務(wù)之異步任務(wù)的使用詳解

    Springboot任務(wù)之異步任務(wù)的使用詳解

    今天學(xué)習(xí)了一個(gè)新技能SpringBoot實(shí)現(xiàn)異步任務(wù),所以特地整理了本篇文章,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Mybatis-Plus 映射匹配兼容性的問(wèn)題解決

    Mybatis-Plus 映射匹配兼容性的問(wèn)題解決

    本文主要介紹了Mybatis-Plus 映射匹配兼容性的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Spring Batch入門(mén)教程篇

    Spring Batch入門(mén)教程篇

    這篇文章主要給大家介紹了Spring Batch入門(mén)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • SpringBoot2.0 ZipKin示例代碼

    SpringBoot2.0 ZipKin示例代碼

    這篇文章主要介紹了SpringBoot2.0 ZipKin示例代碼,詳細(xì)的介紹了什么是ZipKin以及SpringBoot2.0 ZipKin示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 解讀JDK1.8?默認(rèn)使用什么垃圾收集器

    解讀JDK1.8?默認(rèn)使用什么垃圾收集器

    這篇文章主要介紹了解讀JDK1.8?默認(rèn)使用什么垃圾收集器,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 簡(jiǎn)單的用java實(shí)現(xiàn)讀/寫(xiě)文本文件的示例

    簡(jiǎn)單的用java實(shí)現(xiàn)讀/寫(xiě)文本文件的示例

    同時(shí)也展示了如果從輸入流中讀出來(lái)內(nèi)容寫(xiě)入輸出流中(僅限文本流) 三個(gè)例子可以獨(dú)立存在,所以根據(jù)需要只看其中一個(gè)就行了。
    2008-07-07
  • java中Hutool包的常用方法總結(jié)

    java中Hutool包的常用方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了java在工作中中Hutool包的一些常用方法總結(jié),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • 解決Spring Data Jpa 實(shí)體類(lèi)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表失敗問(wèn)題

    解決Spring Data Jpa 實(shí)體類(lèi)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表失敗問(wèn)題

    這篇文章主要介紹了解決Spring Data Jpa 實(shí)體類(lèi)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論

肇州县| 鲁甸县| 荣成市| 平泉县| 随州市| 清涧县| 江都市| 武乡县| 潜江市| 濮阳市| 方城县| 萨迦县| 海晏县| 贞丰县| 竹北市| 泸水县| 柘荣县| 广昌县| 永平县| 平和县| 西贡区| 长汀县| 苏尼特左旗| 新源县| 台安县| 施甸县| 资兴市| 合山市| 淳安县| 福海县| 德州市| 富源县| 夏邑县| 伊通| 武穴市| 手机| 西华县| 富源县| 英德市| 黄浦区| 弋阳县|