maven依赖关系中Scope的作用
2015-12-15 00:00
309 查看
摘要: <dependency>中有个<scope>,这个值决定了打包的时候,是否随项目一起发布,比方说填写 provided,那么你在打包的时候,meta-inf中的打包文件里面的class-path是不会包含的,因为它的意思是期望JDK、容器或使用者会提供这个依赖。所以执行的时候,找不到某个类的原因,就是因为打包根本没有包含进去。
<dependency>中的<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。 典型例子如:spring-core。在编译,测试、运行都需要用到它。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。使用这个选项,编译和测试的时候有效,但是在运行的时候无效,当你发现在eclipse里面运行成功,打包出去运行报错找不到类,大致就是因为你选了这个选项。
* runtime,只在运行时使用,典型例子如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 典型例子是jUnit,它只有在编译测试的时候和运行测试的时候才需要。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 需慎重使用。
<dependency>中的<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。 典型例子如:spring-core。在编译,测试、运行都需要用到它。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。使用这个选项,编译和测试的时候有效,但是在运行的时候无效,当你发现在eclipse里面运行成功,打包出去运行报错找不到类,大致就是因为你选了这个选项。
* runtime,只在运行时使用,典型例子如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 典型例子是jUnit,它只有在编译测试的时候和运行测试的时候才需要。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 需慎重使用。
相关文章推荐
- Linux环境下修改mysql用户密码(忘记密码)
- rsync 数据同步
- centos7重置root开机登录密码
- Windows Nginx Tomcat 集群负载均衡解决笔记
- java使用apache commons codec来进行Base64加密解密
- python分析nginx日志的ip(中篇一)
- 每天一个linux命令:cd命令
- Linux 每日一练 :cat猫 的 反义词是啥 ? 是这个tac 哇哇哇!!
- VI 常用命令
- linux basename dirname
- hadoop2升级的那点事情(详解)
- centOs 安装g++
- How to use re-write module of Apache web server 2.2.3 on FC6 with new or refurbi
- centos 安装 vsftp 转载
- linux xampp
- ubuntu install apache and php
- 使用linux 命令
- centos 安装mysql 转载
- tomcat ip限制
- 自己写一个切换桌面的文件