(一)maven管理之依赖
1.仓库地址
maven仓库网址:http://search.maven.org
2.maven依赖的9大属性
groupId,artfactId,version,type,classifier,scope,systemPath,exclusions,optional
3.属性解析
groupId
项目包在全球的唯一标识
artfactId
项目包构建的唯一标识
version
指定所依赖包的版本号
type
指定依赖包的类型,一般包括jar,war,pom。
classifier
指定依赖包的构件类型
scope
指定依赖包的使用范围,有6种类型;
compile 编译依赖范围,默认使用该范围,对于编译、测试、运行三宗classpath都有效。
test 测试依赖范围,只对测试classpath有效
provided 已体提供依赖范围。对于编译和测试classpath有效,运行时无效
runtime 运行时依赖范围。对于测试和运行的claspath有效,编译无效
system 系统依赖范围。和provided依赖范围完全一致。使用system范围的依赖,不许通过systemPath元素显示地制定依赖文件的路径。
import 导入依赖范围。不会对三种classpath产生实际的影响。
systemPath
是配合<scope>为system使用的,指定非maven仓库导入的jar包;并且路径不能是相对路径,所以需要加上${basedir},
${basedir}这个是pom的内置属性。
<dependency>
<groupId>Msc</groupId>
<artifactId>Msc</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/Msc.jar</systemPath>
</dependency>
exclusions
依赖排除,就是有时候引入某一个依赖的时候,该依赖下有jar包冲突,可以排除掉,不引用该jar
<dependency>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>1.0.2-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
optional
决定是否继承当前依赖包的依赖项。比如A依赖B,B依赖C;在A中配置如下即表示A只依赖B,而不依赖C。optional默认是false。
<dependency>
<groupId>B</groupId>
<artifactId>B</artifactId>
<version>1.0.2-SNAPSHOT</version>
<optional>true</optional>
</dependency>