Maven学习笔记(2) --- 依赖
来源:互联网 发布:数据科学家养成手册 编辑:程序博客网 时间:2024/06/05 13:34
maven依赖
在maven项目中,我们会在pom.xml文件中引入我们需要用到的依赖,一般用groupId
,artifactId
,version
就够了,如下:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.1.7.RELEASE</version></dependency>
有时,也会指定依赖范围,比如:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope></dependency>
maven有3套classpath,编译classpath,运行classpath,测试classpath。
依赖范围
依赖范围有以下几种:
compile
编译依赖范围。默认是这种范围。对3中classpath都有效。典型例子是spring-core
,在编译,运行,测试时都需要。test
测试依赖范围。只对测试classpath有效。典型例子是junit
,它只在测试期间需要。provided
已提供依赖范围。对编译classpath和测试classpath有效,运行classpath无效。典型例子是servlet-api
,运行的时候容器会提供,所以运行时不需要。runtime
运行时依赖范围。对运行classpath和测试classpath有效。典型例子是jdbc
驱动实现,编译的时候只要有jdk的jdbc接口即可。system
系统依赖范围。和provided
一样,对3中classpath都有效。但是,使用时必须通过systemPath元素显式指定依赖文件的路径。限制比较多,一般不使用。import
导入依赖范围。对3中classpath都没实际影响。
依赖机制
- 依赖会传播:A依赖B,B依赖C,那么maven解析的时候会找到B,发现B依赖C,又去把C引入,然后在引入B
- 有相同依赖的时候,优先选路径最近的:比如A->B->C->X(1.0), A->D->X(2.0),这时候有2个X,会冲突,maven会选择最近的,也就是X(2.0)
- 在依赖路径长度相同时,优先选先声明的:比如A->B->Y(1.0), A->C->Y(2.0),在maven2.0.9之后,maven会选在pom中先声明的那个。即如果C的依赖声明在B之前,就选Y(2.0)
1 0
- Maven学习笔记(2) --- 依赖
- Maven学习笔记2-坐标与依赖
- maven学习笔记(二) 依赖
- Maven学习笔记(坐标和依赖)
- maven学习笔记(五) maven的依赖
- 【学习笔记】Maven依赖特性
- Maven学习笔记之Maven坐标依赖
- maven学习笔记3 各种maven依赖
- Maven学习笔记十一:Maven坐标和依赖(依赖范围)
- Maven学习笔记十三:Maven坐标和依赖(依赖调解)
- Maven学习笔记(三)——坐标和依赖
- maven 学习笔记一 (坐标和依赖)
- Maven实战学习笔记(坐标和依赖)
- Maven学习笔记(十)坐标与依赖
- Maven学习笔记(四):坐标与依赖
- Maven学习笔记之坐标和依赖
- Maven学习笔记---传递依赖冲突解决
- maven学习笔记2 依赖的配置和依赖的范围
- GitHub 排名前 100 的安卓、iOS项目简介
- 关于tomcat 中的 tomcat-users.xml 配置不生效原因
- Alarm
- iOS开发-automaticallyAdjustsScrollViewInsets属性
- Android瀑布流实例
- Maven学习笔记(2) --- 依赖
- Android——ListView布局+适配器(三)
- 教你一波Lucas(卢卡斯)定理在数论解题中的应用
- hdu 5798 Stabilization(2016多校第六场1006)
- HDU 1548 A strange lift (Dijkstra算法)
- Java 基本数据类型
- 如何将文件夹打包成文件,然后将文件格式化成虚拟文件系统,挂载到某个文件夹
- 缓存文件可以放在哪里?它们各自的特点是什么?
- 如何在Spark中记录日志