scope 元素為maven dependency下面一個(gè)控制作用域的子元素,maven官方稱(chēng)為transitive dependencies有6個(gè)可選值,其值可以為:compile, provided, runtime, test, system and import,各自的作用為:
- compile:這個(gè)是maven默認(rèn)的scope屬性,也就是整個(gè)project的classpath
2.provided: provided與compile基本相同,但表示需要JDK或者容器提供一個(gè)運(yùn)行時(shí)的依賴(lài),比如說(shuō)當(dāng)部署運(yùn)行一個(gè)web應(yīng)用時(shí),這時(shí)候 servlet api或者類(lèi)似的J2EE的API需要將scope寫(xiě)成provided,該屬性不具備傳遞性,不會(huì)出現(xiàn)在打出的war包中
runtime:顯然,就表示該依賴(lài)不一定需要在編譯期使用,只需要運(yùn)行時(shí)使用,包括運(yùn)行時(shí)classpath和test classpath
test:表示測(cè)試時(shí)依賴(lài)使用
5.system:與provided類(lèi)似 唯一不同的時(shí) 需要提供一個(gè)明確包含該jar,該jar包的aritfact是基于本地,不是maven 三方庫(kù)中的,正常情況下不使用
6.import: 僅maven 2.0.9版本之后才支持該scope,并且僅可用于 pom類(lèi)型的依賴(lài),該屬性打破了依賴(lài)的傳遞性,指定使用特定的pom