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