maven依赖关系中Scope的作用

5.1HotSpot VM 介绍 HotSpot VM 介绍 一、前言 对于多数开发者Java虚拟机(JVM)是个**“黑盒”**,不去过多关注它的基本架构、内存管理机制以及优化方案。因为目前来讲JVM有了很多改进,Java应用的性能基本都能达到性能要求,开发者更多精力放在业务方面。但是若要提高整个项目的性能,就需要对JVM有个基本认识。 本章将围绕JVM相关知识进行讲解:如 JVM内存模结构 内存分配相关的参数 垃圾回收器的种类以及使用方法 JVM调优实例讲解 … 说这么多,有的小伙伴觉得"鸭梨山大"了,刚从前两章“渡劫”升迁,所以 阅读详情

Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。

scope的分类

compile

默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。

test

scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。

runntime

runntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过编译而已,说实话在终端的项目(非开源,企业内部系统)中,和compile区别不是很大。比较常见的如JSR×××的实现,对应的API jar是compile的,具体实现是runtime的,compile只需要知道接口就足够了。Oracle jdbc驱动架包就是一个很好的例子,一般scope为runntime。另外runntime的依赖通常和optional搭配使用,optional为true。我可以用A实现,也可以用B实现。

provided

provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。

system

从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。

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。

下面是一张nexus画的图。
依赖传递时scope的计算

转载地址:http://blog.youkuaiyun.com/andrewdengpf/article/details/54098255

Flink 系列:解决 java.lang.ClassNotFoundException: org.apache.flink.runtime.state.CheckpointListener 问题 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/runtime/state/CheckpointListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.securit... 阅读详情

相关推荐

eclipse-java-2021-06-R-win32-x86_64

Eclipse IDE for Java Developers 适用于Windows x86_64

Flink本地模式报错:Exception in thread main java.lang.NoClassDefFoundError

1.报错: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/scala/typeutils/CaseClassTypeInfo at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.Se..

海若_matrix的博客 8049

FreeSWITCH彩铃与回铃音区别详解:从183/180信令到mod_da2检测模块

本文深入解析FreeSWITCH中彩铃与回铃音的技术差异,从183/180信令机制到mod_da2智能检测模块的实现原理。通过对比SIP协议中的早期媒体传输、回铃音补偿技术及实战案例,帮助开发者掌握VoIP系统中的关键音频处理技术,提升呼叫系统稳定性和用户体验。

tree8的博客 348

Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/flink/

flink 项目开发配置

Smileyan's blog 1万+

基于STM32的3D打印机控制

通过本项目,我们成功搭建了一个基础的3D打印机控制系统,能够控制步进电机和加热元件。这为使用STM32开发功能丰富的3D打印机提供了基础,您可以在此基础上继续扩展功能,如增加LCD显示、SD卡存储、联网控制等功能。在这个项目中,我们将使用STM32微控制器开发一个基础的3D打印机控制系统。通过控制步进电机、加热元件和温度传感器,我们将实现一个简单的FDM(熔融沉积制造)3D打印机控制。- 检查PWM信号的生成功能,确认加热元件的控制逻辑是否正常。- 增加适当的滤波和校准算法,以提高温度读取的准确性。

2401_88938661的博客 1502

高斯-约当(Gauss-Jordan)消元法——c++代码实现

具体算法的详细原理请参照此篇博客:高斯-约当(Gauss-Jordan)消元法下面是具体c++代码,不保证程序最优化,提供一个可行的程序,供大家改进,同时感谢大家提意见。——大神勿喷呀,我是一个小菜鸟~void Guss_Jordan(int n,double *a)//阶数n 系数矩阵a { double*a_temp = new double[n*n * 2];//a与单位矩阵的组合

zwz的学习之路 6872

Maven依赖关系中Scope的作用

原文地址:http://peak.iteye.com/blog/299225 maven依赖关系中Scope的作用  Dependency Scope  在POM 4中,中还引入了,它主要管理依赖的部署。目前可以使用5个值:      * compile,缺省值,适用于所有阶段,会随着项目一起发布。      * provided,类似compile,期望JDK、容器或使用者

杨春建的博客 1488

FT601Q芯片深度解析:从USB3.0引脚定义到FPGA FIFO协议实战选型

本文深入解析FT601Q芯片在USB3.0接口设计与FPGA协议栈开发中的应用,详细介绍了USB3.0引脚定义、FT601Q芯片架构、245同步FIFO模式及硬件设计要点,帮助工程师实现高速数据传输系统。

weixin_30607659的博客 447
上一篇: 将下载到本地的JAR包手动添加到Maven仓库
下一篇: 软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型总结
elementf
博客等级 码龄14年 30粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值