Keep going

Maven依赖的scope

maven中一些常用的scope及其介绍。

compile:

maven的默认依赖scope,并且会应用于所有的classpath,也就是说不论在compile, test compile, 还是直接用mvn来运行(runtime)都会起作用.

runtime:

在compile相关的阶段都不会起作用,仅仅是在运行(runtime)或者测试(test)的时候有效。

provided:

和compile类似,但是往往这些依赖不需要随应用一起发布,一般是由外部环境或者容器来提供,不需要自己准备,比如说servlet-api, jsp-api这些都可以由container提供。

test:

这个最好理解,仅仅是在测试的时候有用,compile和runtime都不需要

system:

有些依赖是仓库没有的,那么可以通过使用system范围来告诉maven在指定的本地路径上查找依赖。因此需要在dependency中指定systemPath元素,告诉maven依赖的具体位置。一般来说是不应该使用该范围的,很可能大家不能共享你的配置。