真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【Maven】屬性scope依賴作用范圍詳解-創(chuàng)新互聯(lián)

文章目錄
    • 前言
    • scope取值和作用表
    • 詳解
      • compile
      • provided
      • system
      • runtime
      • test
      • import

網(wǎng)站制作、建網(wǎng)站找專業(yè)網(wǎng)站設(shè)計(jì)公司創(chuàng)新互聯(lián):定制網(wǎng)站、模板網(wǎng)站、仿站、微信小程序、軟件開發(fā)、成都App定制開發(fā)等。做網(wǎng)站價格咨詢創(chuàng)新互聯(lián):服務(wù)完善、十載建站、值得信賴!網(wǎng)站制作電話:028-86922220
前言

Maven中使用 scope 來指定當(dāng)前包的依賴范圍和依賴的傳遞性。常見的可選值有:compile,provided,runtime,test, syste,import 等。scope 主要是用在 pom.xml 文件中的依賴定義部分,例如:

javax.servletjavax.servlet-api4.0.1provided
scope取值和作用表
scope取值有效范圍依賴傳遞是否打入jar包例子
compileallspring-core
providedcompile,testservlet-api
systemcompile,test
runtimeruntime,testJDBC驅(qū)動
testtestJUnit
import
詳解 compile

為默認(rèn)的依賴有效范圍。定義依賴關(guān)系沒有指定依賴有效范圍,默認(rèn)采用該依賴有效范圍;

此種依賴,在編譯、運(yùn)行、測試時均有效,會以依賴傳遞,打入jar包;

provided

在編譯、測試時有效,但是在運(yùn)行時無效。provided意味著打包的時候不會打入jar包,別的設(shè)施(Web Container)會提供。

事實(shí)上該依賴?yán)碚撋峡梢詤⑴c編譯,測試,運(yùn)行等周期。相當(dāng)于compile,但是在打包階段做了exclude的動作。

例如:servlet-api,運(yùn)行項(xiàng)目時,容器已經(jīng)提供,就不需要打入jar包了。

說到provided,這里就要說到 dependency 下的子標(biāo)簽 optional ,如果一個依賴的 optional 設(shè)置為true,則該依賴在打包的時候不會被打進(jìn)jar包,同時不會通過依賴傳遞傳遞到依賴該項(xiàng)目的工程;例如:x

依賴B,B由依賴于A(x->B->A),則A中設(shè)置 optional 為true的依賴不會被傳遞到x中。

兩者區(qū)別:

1、為true 表示某個依賴可選,該依賴是否使用都不會影響服務(wù)運(yùn)行;

2、provided的在目標(biāo)容器中已經(jīng)提供了這個依賴,無需在提供

system

system依賴不是由maven倉庫管理,而是本地的jar包,因此必須配合systemPath標(biāo)簽來指定本地的jar包所在全路徑。這類jar包默認(rèn)會參與編譯、測試,但是不會被參與打包階段。如果也想打包進(jìn)去的話,需要在插件里做配置true;

//引用本地jar包com.mytesttest1.0system${pom.basedir}/lib/test-1.0.jar

由于此類依賴不是通過Maven倉庫解析的,而且往往與本機(jī)系統(tǒng)綁定,可能造成構(gòu)建的不可移植,因此應(yīng)該謹(jǐn)慎使用。

runtime

在運(yùn)行、測試時有效,但是在編譯代碼時無效,打入jar包;
例如:JDBC驅(qū)動實(shí)現(xiàn),項(xiàng)目代碼編譯只需要JDK提供的JDBC接口,只有在測試或運(yùn)行項(xiàng)目時才需要實(shí)現(xiàn)上述接口的具體JDBC驅(qū)動。

test

只在測試時有效,包括測試代碼的編譯,執(zhí)行,不會打入jar包;例如:JUnit。

import

import 只能在pom文件的中使用,從而引入其他的pom文件中引入依賴;
如:在Spring boot 項(xiàng)目的POM文件中,我們可以通過在POM文件中繼承 Spring-boot-starter-parent來引
用Srping boot默認(rèn)依賴的jar包,如下:

org.springframework.bootspring-boot-starter-parent2.0.1.BUILD-SNAPSHOT

但是,通過上面的parent繼承的方法,只能繼承一個 spring-boot-start-parent。實(shí)際開發(fā)中,用戶很可能需要繼承自己公司的標(biāo)準(zhǔn)parent配置,這個時候可以使用 scope=import 來實(shí)現(xiàn)多繼承。代碼如下:

    org.springframework.boot  spring-boot-dependencies  2.0.1.BUILD-SNAPSHOT  pom  import

通過上面方式,就可以獲取spring-boot-dependencies.2.0.1.BUILD-SNAPSHOT.pom文件中dependencyManagement配置的jar包依賴。如果要繼承多個,可以在dependencyManagement中添加,如:

  org.springframework.data  spring-data-releasetrain  Fowler-SR2  pom  import org.springframework.boot spring-boot-dependencies 2.0.1.BUILD-SNAPSHOT pom import

另外:【Maven】jar包沖突原因與最優(yōu)解決方案

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前標(biāo)題:【Maven】屬性scope依賴作用范圍詳解-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://weahome.cn/article/eppcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部