当前位置: 首页 > news >正文

maven pom.xml 依赖的scope属性

maven pom.xml 依赖的scope属性

compile

适用范围

编译期、测试期、运行期

作用

  从中央仓库拉取依赖到本地,并编译 打包到结果包中

runtime

适用范围

测试期、运行期

作用

  runtime 用在 Class.forName(“com.mysql.jdbc.Driver”) 时,compile 编译时不依赖,只有运行时才会依赖。

test

适用范围

测试期

作用

  scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit
  test表示只能在src下的test文件夹下面才可以使用,你如果在a项目中引入了这个依赖,在b项目引入了a项目作为依赖,在b项目中这个注解不会生效,因为scope为test时无法传递依赖。

system

适用范围

编译期、测试期

作用

由于版权限制等原因,不是所有的jar包都存储在中央仓库中。scope取值为system时,表示依赖来自本地系统,需要配合标签systemPath(用于指定依赖路径)使用

provided

适用范围

编译期、测试期

作用

  provided表示已提供,即打包期间不需要该依赖,该依赖会由其他依赖或容器会提供,避免依赖冲突
  案例一:lombok 只在编译时,把 getter、setter 设置好,不需要运行时使用。
  案例二:servlet-api 只在编译时,需要引入,运行时由 tomcat 容器提供。

scope的依赖传递

A–>B–>C。当前项目为A,A依赖于B,B依赖于C。知道B在A项目中的scope,那么怎么知道C在A中的scope呢?
  当C是test或者provided时,C直接被丢弃,A不依赖C;
否则A依赖C,C的scope继承于B的scope。

http://www.lryc.cn/news/17739.html

相关文章:

  • git 的使用方法 (下 - 远程仓库和图形化)
  • Java基础:拼图小游戏
  • 一个跟蘑菇结缘的企业老板
  • 【Leetcode 剑指Offer】第 4 天 查找算法(简单)
  • Jenkins利用docker部署vue项目
  • 【Linux】如何将ntfs硬盘挂载到home目录下并具有读写权限
  • 拖拽删除元素、拖拽排序、拖拽预览图片和拖拽移动元素
  • yarn的global安装命令不生效
  • 如何发布自己的npm包?
  • 达梦数据库 闪回查询
  • java基础学习 day44(多态的优点和劣势)
  • Guna UI WinForms 2.0.4.4 Crack
  • 零售航母沃尔玛公布业绩:喜忧参半
  • Python学习笔记丨while、for、if循环结构基础知识与易错点
  • 【ROS学习笔记1】ROS快速体验输出Hello World
  • 复习git的使用
  • pip命令大全 含换源方法
  • 数据结构与算法之最短路路径与最短路径和动态规划
  • git 本地新建分支并进行合并
  • 2023年DAMA-CDGA/CDGP数据治理认证选择哪家机构好?
  • 浅析高速服务区交互一体机设备管理系统的建设与方向
  • 分布式面试题
  • Prophet 处理时间序列数据
  • 一文搞清楚LoRa网关,LoRa网关全知道
  • 医疗保健和智慧城市服务将引领5G物联网采用
  • promise静态方法及相关练习
  • 【Tips】通过背数据了解业务
  • 设备太分散?如何一站式管理边缘 OS、K8s 和应用?
  • CF1692D The Clock 题解
  • IDEA 30 个好用天花板技巧,敲代码直接接爽到飞。