Maven依赖范围<scope>
2016-06-13 17:37
253 查看
1、Maven因为执行一系列编译、测试和部署运行等操作,在不同的操作下使用的classpath不同,依赖范围就是用来控制依赖与三种 classpath(编译classpath、测试classpath、运行classpath)的关系。
Maven有以下几种依赖范围:
compile:编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都要使用该依赖jar包;
test:测试依赖范围,从字面意思就可以知道此依赖范围只能用于测试classpath,而在编译和运行项目时无法使用此类依赖,典型的是JUnit,它只用于编译测试代码和运行测试代码的时候才需要;
provided:此依赖范围,对于编译和测试classpath有效,而对运行时无效;
runtime:运行时依赖范围,对于测试和运行classpath有效,但是在编译主代码时无效,典型的就是JDBC驱动实现;
system:系统依赖范围,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径,不依赖Maven仓库解析,所以可能会造成建构的不可移植,谨慎使用。
import:导入依赖范围。
Maven有以下几种依赖范围:
compile:编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都要使用该依赖jar包;
test:测试依赖范围,从字面意思就可以知道此依赖范围只能用于测试classpath,而在编译和运行项目时无法使用此类依赖,典型的是JUnit,它只用于编译测试代码和运行测试代码的时候才需要;
provided:此依赖范围,对于编译和测试classpath有效,而对运行时无效;
runtime:运行时依赖范围,对于测试和运行classpath有效,但是在编译主代码时无效,典型的就是JDBC驱动实现;
system:系统依赖范围,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径,不依赖Maven仓库解析,所以可能会造成建构的不可移植,谨慎使用。
import:导入依赖范围。
相关文章推荐
- nginx服务器安装及配置文件详解
- linux iptables 相关设置
- jenkins 配置实例(Linux)
- OpenCV环境搭建
- linux Shell中read的选项及用法
- 框架模式VS设计模式
- selinux下添加android:sharedUserId="android.uid.phone"的应用开放访问"/mnt/asec/"
- termios的结构 ----Linux
- 内存不足导致OpenStack进程异常的诊断和思考
- 途牛原创|途牛无线权限系统的架构设计与实践
- ubuntu12.04简单安装Nginx
- Centos7静态IP的设置
- 对话架构师:亿级短视频社交「美拍」架构实战
- RabbitMQ 原文译05--Topics
- rk3188--12.linux内核中工作队列的实现
- 『九个月实现破亿用户的可扩展架构』学习笔记
- Linux日志文件总管――logrotate
- c#使用WebClient登录网站抓取登录后的网页
- nginx限制某个IP同一时间段的访问次数
- 几个设计相关的网站