maven中scope依賴範圍與classpath的關係

Java_nick_chan發表於2017-03-08

依賴範圍(Scope)

對於編譯有效

對於測試有效

對於執行有效

例子

備註

compile

Y

Y

Y

spring-core

在編譯,測試,執行時spring-core的jar都要加入到classpath中

test

-

Y

-

Junit

只在測試階段junit的jar要加入到classpath中

provided

Y

Y

-

servlet-api

只在編譯,測試中要加入servlet-api的jar,但執行時,容器會提供這個jar,所以執行期不要加入

runtime

-

Y

Y

jdbc驅動

在編譯時,只需要 sun提供的jdbc介面即可,在測試和執行期則要這個驅動.

system

Y

Y

-

本地的,Maven倉庫之外的類庫檔案

與provided依賴範圍一樣。但使用system範圍的依賴必須通過systemPath元素顯式指定依賴檔案的路徑。因為這個依賴不是由Maven倉庫解析的,而且都與本機系統繫結,可能造成構建不可移植,慎用.




相關文章