Maven的依赖构件包含一个依赖范围属性,这个属性描述的是三套classpath的控制,即编译、测试、运行。

举个例子Junit依赖只是在测试范围(classpath)使用,而在运行的时候不使用,还有Servlet api在编译的时候使用,在运行部署的时候不使用,因为大部分容器都已经提供该依赖支持。

  <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>

下面对Maven依赖范围进行逐一说明:

1. compile: 编译依赖范围。

默认的依赖范围,使用此依赖范围会对编译、测试、运行三套classpath都有效。

2. test: 测试依赖范围。

使用此依赖范围只会对测试有效。比如 Junit

3. provided: 已提供的依赖范围。

使用此依赖范围会对编译和测试有效,对运行无效。比如 Servlet-api ,运行的时候容器已经提供

4. runtime: 运行时的依赖范围。

使用此依赖范围会对测试和运行有效,对于编译无效。 比如 JDBC驱动依赖

5. system: 系统依赖范围。

和provided依赖范围完全一样,由于此类依赖不是通过Maven仓库解析的,而是和本机系统绑定的,使用后可能会造成不可移植性,请谨慎使用此种依赖范围。

6. import: 导入依赖范围。

该依赖不会对三套classpath产生影响。这种依赖范围只会在<dependencyManagement>标签中使用,意思是说使用此种依赖范围通常是指向一个POM类型的Maven项目,将依赖一个POM类型的项目中的所有依赖全部导入到目标项目中来,是除了复制依赖、继承依赖的另外一种使用依赖的方式,可以说Maven还是非常的灵活的。

转载于:https://www.cnblogs.com/dcz1001/p/5927669.html

Maven的依赖范围相关推荐

  1. maven排除依赖包的子依赖_漫画谈一下Maven依赖

    Maven 依赖排除(Exclusions) 因为 Maven 构建的项目具有依赖可传递的特性,当你在 pom.xml添加某个依赖时,可能也会引入不需要的依赖到你的项目中,这将会会可能引起如下问题: ...

  2. maven 的依赖传递

    1.   首先就maven的依赖传递来说:只有<scope>compile</scope>时,才能进行依赖的传递,其他的范围没有依赖传递可言!!! 2.   当依赖级别相同时, ...

  3. maven的依赖范围_Maven依赖范围

    maven的依赖范围 介绍: 管理依赖项是Maven的核心功能. 在定义Maven依赖项时, scope属性定义了该依赖项在不同的Maven生命周期阶段(例如build,test和run)上的可见性. ...

  4. java poi jar maven_导出maven项目依赖的jar包(图文教程)

    注意使用mvn命令是需要配置好maven的环境变量 一.导出到自定义目录中 在maven项目下创建lib文件夹,输入以下命令: mvn dependency:copy-dependencies -Do ...

  5. Maven下载依赖提示Missing artifact

    Maven下载依赖提示Missing artifact 删除后缀为lastUpdated的文件,然后更新依赖. posted on 2018-09-26 00:32 凉凉的风 阅读(...) 评论(. ...

  6. maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)

    我们知道,maven的依赖关系是有传递性的.如:A-->B,B-->C.但有时候,项目A可能不是必需依赖C,因此需要在项目A中排除对A的依赖.在maven的依赖管理中,有两种方式可以对依赖 ...

  7. Spring整合Mongodb,Maven的依赖,Spring配置,MongoDB的公共操作类,使用SpringMVC的Controller进行测试并返回结果的案例

    在和Spring和MongoDB进行整合的时候需要如下三个jar,分别是: spring-data-commons spring-data-mongodb mongo-java-driver 下面讲解 ...

  8. Maven 3-Maven依赖版本冲突的分析及解决小结

    举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖). ...

  9. maven检测依赖_检测Maven依赖中介

    maven检测依赖 从Maven 2.0.9开始,已向Maven添加了一个称为依赖中介的新功能. 依赖关系中介是Maven在特定情况下在依赖关系树中多次出现依赖关系时用来解决项目依赖关系的技术. 通常 ...

  10. maven插件依赖_当Maven依赖插件位于

    maven插件依赖 问题: 我们进行了一个集成测试,该测试创建了一个Spring ClassPathXmlApplicationContext ,同时这样做导致NoSuchMethodError爆炸. ...

最新文章

  1. script中用php
  2. 用nodejs搭建最简单、轻量化的http server
  3. Nginx+Tomcat负载均衡访问网页出现报错HTTP Status 400 – 错误的请求
  4. dwcs6连接不上access数据库_dw连接access数据库步骤
  5. 关于Xcode上的Other linker flags
  6. cloudera-quickstart-vm-5.13.0-0-virtualbox 中文显示乱码
  7. 给程序猿简历的一些建议
  8. 145元!苹果上架一块儿“天价抹布” ,你会买吗?
  9. flexsession禁用_flex(替代session过期)用户长时间不操作要求重新登录的处理
  10. 机器学习与计算机视觉(第一个卷积神经网络)
  11. Matlab 图像像素点在RGB空间的显示
  12. BI系统打包Docker镜像及容器化部署的具体实现
  13. Java环境变量配置与adb环境变量配置
  14. TOPSIS法——利用原始数据进行综合评价
  15. 树莓派基础实验38:逻辑分析仪分析PWM、UART信号
  16. 局域网之间两台计算机同屏,如何实现内网多电脑同屏协同?
  17. 开发支付宝接口时的错误报告:openssl_sign(): supplied key param cannot be coerced into a private key【解决方法】
  18. 云上发展,唯快不破!IT部门是数字化转型的变革者 | 凌云时刻
  19. 【工控老马】ABB AC500 系列PLC与WEST 8100+系列仪表的ASCII通讯指南
  20. esxi6.7解锁并安装macOS

热门文章

  1. 你读过的最心酸的句子有哪些?
  2. 现代企业三大目标才是核心
  3. “画大饼”行走江湖的必备技能
  4. C语言学习篇(32)——为什么C语言不能函数重载
  5. OKR是什么、OKR有什么用?
  6. sql server 性能_SQL Server性能神话破灭
  7. ssis 包_SSIS包中的错误处理概述
  8. 批量关停azure vm_如何从Azure VM数据库运行本地SQL报表
  9. Android环境配置(Eclipse全开发环境下载)
  10. Docker-07-docker compose