1.所有的依赖坐落于<dependencies>元素的<dependency>中,dependencies可以包含多个dependency。
2.dependency元素可以包含的子元素有:
groupId,artifactId,version,type,scope,optional,exclusions,其中groupId,artifactId,version是依赖的基本坐标,必不可少。type是依赖的类型,对应于maven坐标的packaging。
3.依赖范围
3.1. maven的3种classpath
maven在编译项目主代码的时候需要使用一套classpath,在编译和执行测试的时候会使用另外一套classpath,最后在实际运行的时候,又会使用另外一套classpath。
3.2. 依赖范围就是控制依赖于这三种classpath(编译主代码classpath,测试classpath,运行classpath)关系。maven有6中依赖范围
依赖范围(scope) |
对于编译的classpath有效 |
对于测试的classpath有效 |
对于运行的classpath有效 |
compile(默认的scope) |
Y |
Y |
Y |
test |
|
Y |
|
provided |
Y |
Y |
|
runtime |
|
Y |
Y |
system |
Y |
Y |
|
4.传递性依赖
如,A依赖B,B依赖C,则称C是A的一个传递性依赖。
5.maven对传递依赖的解析规则。
1)第一原则:路径最近者优先
如:A->B->C->X(1.0), A->D->X(2.0),对于X构件有2个版本1.0和2.0,因为X(1.0)的依赖长度为3,而X(2.0)的长度为2,所以maven会解析X(2.0)做为当前构件的依赖。
2)第二原则:第一声明者优先
如果第一原则不能解析依赖。如2个依赖的构件的依赖长度是一样的情况。如A->B->X(1.0)和A->C->X(2.0),X的依赖长度都是2,这时,maven会根据X1.0和X2.0在构件中声明的顺序来决定解析哪个版本。
6.排除传递性依赖,然后设置传递性依赖的确切版本(并不是不依赖传递依赖)
在dependency元素下增加元素exclusions元素。声明一些需要排除的传递性依赖。然后增加对传递性依赖的确切版本的依赖。
6.查看某个模块的所有依赖(包括直接依赖和传递性依赖)。
mvn dependency:list
查看依赖树:
mvn dependency:tree
依赖分析:
mvn dependency:analyze
最佳实现:最好在模块中显示声明直接依赖。
分享到:
相关推荐
springboot 的maven依赖包,含有所有maven依赖,网络不好的可以来下。压缩包3.
这是一个简单的maven依赖的小例子
maven依赖库,里面含有较为全面的jar包,如果maven无法自动下载依赖库,可手动导入依赖库;该压缩包解压后可以直接在maven项目中指定路径使用。
maven依赖
附件为:dubbox2.8.4 maven依赖文件。 使用方法:按照依赖关系,自行创建maven依赖文件夹后,将附件解压至指定文件夹即可使用。 可解决Missing artifact com.alibaba:dubbo:jar:2.8.4 dubbo问题。
oracle ojdbc8 ojdbc14 maven依赖
Oracle依赖,maven依赖,ojdbc8的依赖
这是一个maven依赖+继承+聚合的小例子,用来参考和学习maven
doris-1.1.3源码编译broker-maven依赖包repository
om.google.code.gson/gson/2.6.2 Gson maven依赖 java 开发包
达梦数7据库j驱动包及方言包,maven依赖jar包,DM达梦数据库jdbc-jar包dialect方言jar包
jackson2.6.0 jar maven依赖 jackson2.6.0 jar maven依赖jackson2.6.0 jar maven依赖jackson2.6.0 jar maven依赖jackson2.6.0 jar maven依赖
将开发过程常用的maven依赖汇总下来了,不用每次都去maven仓库查询,可以节省很多时间
附件详细的介绍了Maven依赖在POM文件中的表示、依赖范围的含义以及传递性依赖的使用,也包含依赖调解的两个内容。
elasticsearch 5.4 maven依赖jar包 x-pack-transport5.4.0所有依赖jar包
SSM基本的Maven依赖文件,测试可用
Geoserver maven 依赖 java
maven依赖包。还有一部分另外上传。上不了外网也可以maven了
非常好用的PDF转图片jar包附带Maven依赖,亲测好用,公司的项目也是调用的这个,值得一试!
PlanarImage类找不到报错问题解决。 相关的jar包以及maven依赖代码