首页 > 代码库 > Maven入门教程二----Maven依赖
Maven入门教程二----Maven依赖
- 依赖包查询
通过坐标存储,GAV-groupId,artifacld,version
有些网上的仓库自带了,nexus,http://mvnrepository.com
传递性依赖
依赖范围:
依赖的传递性:依赖是会被传递的。
A--C,B--A,那么B--C(基于compile范围进行传递)。pom.xml中scope如果没有声明,那么默认是compile
如果scope的声明为test,那么这个依赖不会传递到另外一个compile包中
test:打成war时不会把测试包打进去,也不会传递。编译和打包都不会使用这个包。
compile:编译范围有效,在编译、打包都需要
provided:在编译和测试的过程中有效,最后生成war包时不会加入。诸如:servlet-api.jar因为tomcat服务器已经存在了,如果再打包会冲突
runtime:运行时依赖,编译的时候不依赖
import
system
- 依赖传递冲突
1、a--b1.0,b--b1.1 d--a和c,在d中哪一个依赖顺序先写就使用先写依赖的版本
如果d--><d>a<d>和<d>b<d>那么依赖b为1.0
2、a--b1.0,b--b1.1,d--a和c==>b1.0,f-->d,c,选择最短路径f--b1.1
3、如果希望精确的控制依赖包,可以使用依赖的排除功能
dependencies,dependency下exclusions,排除不需要依赖的包,通过GAV声明
- 依赖的聚合
一个地方编译多个文件,eclipse中maven按照project走,idea中按照module走。
eclipse中可以通过编写一个pom.xml(打包方式为pom,<packaging>pom<packaging>编译和打包所有project。
idea中,一个project可以有多个module,因此默认就存在pom.xml
- pom继承
父类里面可以定义好,版本,编码等信息,之类,引入parent标签,将继承父类的配置
父类可以导入所有使用到的包,通过dependencyManagement标签声明依赖,子类中就可以只声明groupId和artifactId来找到包,版本从父类继承下来
Maven入门教程二----Maven依赖