经过坐标存储,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
systemapi
一、a--b1.0,b--b1.1 d--a和c,在d中哪个依赖顺序先写就使用先写依赖的版本
若是d--><d>a<d>和<d>b<d>那么依赖b为1.0
二、a--b1.0,b--b1.1,d--a和c==>b1.0,f-->d,c,选择最短路径f--b1.1
三、若是但愿精确的控制依赖包,能够使用依赖的排除功能
dependencies,dependency下exclusions,排除不须要依赖的包,经过GAV声明tomcat
一个地方编译多个文件,eclipse中maven按照project走,idea中按照module走。
eclipse中能够经过编写一个pom.xml(打包方式为pom,<packaging>pom<packaging>编译和打包全部project。
idea中,一个project能够有多个module,所以默认就存在pom.xml服务器
父类里面能够定义好,版本,编码等信息,之类,引入parent标签,将继承父类的配置
父类能够导入全部使用到的包,经过dependencyManagement标签声明依赖,子类中就能够只声明groupId和artifactId来找到包,版本从父类继承下来eclipse