在Maven中依赖的域有这几个:import、provided、runtime、compile、system、test。
注:在默认的情况下scope的范围是compile
import使用的比较少,可参考:https://www.cnblogs.com/huahua035/p/7680607.html
这里介绍其他五种。
通过scope属性配置依赖范围,scope属性可以取的值如下:
详细解释:
1. compile :编译需要,测试需要、运行时也需要(会被打包),大部分的jar包都是这个范围
【示例】对mavenDemo进行打包操作,查看war包内应该有所有的jar。
2. provided :编译需要,测试需要,运行时不需要(不会被打包),例如servlet-api包
【示例】在mavenDemo引入servlet-api.jar的依赖,但servlet-api只在编译的时候需要,测试需要,运行时不需要(不会被打包),因为tomcat会提供,故scope取值为provided.
对mavenDemo进行打包操作,查看war包内应该有所有的jar,还是18个jar包,没有servlet-api-2.5.jar,可见编译时会可见,但是不会被打包。
3. test: 编译时不需要、测试时需要、运行时不需要(不会被打包),例如junit包
【示例】导入junit的jar
对mavenDemo3进行打包package的操作,发现junit包并没有被打包:
4.runtime: 编译不需要,测试时需要,运行时需要(会被打包),例如:jdbc驱动包
对mavenDemo进行打包package的操作,发现mysql包有被打包:
5. system:一个jar包如果是在本地,不在maven仓库内,那么scope的取值为system.编译时需要,测试时需要,运行时不需要(不会被打包)。例如:oracle的驱动包,从*仓库无法下载,需要先下载到本地,再通过本地路径引入。
先下载orace的包到本地:
然后添加该jar包的依赖:
也可以将jar包上传到本地仓库,通过坐标查找(推荐),步骤如下:
先选择项目右键import-->Install or deploy an artifact to a Manve repository.
然后添加该jar包的依赖: