标签:
Maven的坐标元素有groupId,artifactId,version,packaging,classifier
文件名和坐标相对应artifactId-version [-classifier] .packaging
依赖可声明的属性
groupId
artifactId
version
type
scope
compile - 默认的依赖范围,对编译、测试、运行三种classpath都有效
test - 测试依赖范围,只对测试classpath有效
runtime - 与测试和运行classpath有效
provided - 对编译和测试classpath有效,典型的比如servlet-api运行时容器会提供
system - 对classpath的影响和provided一样,但是所以来的jar要通过systemPath指定,而不是通过中央仓库
<dependency> <groupId>javax.sql</groupId> <artifactId>jdbc-stdext</artifactId> <version>2.0</version> <scope>system</scope> <systemPath>${java.home}/lib/rt.jar</systemPath> <!-- 可以引用环境变量 --> </dependency>
import - 不会对三种classpath有影响
optional - 可选依赖,不会被传递。不推荐使用,不符合单一职责设计
exclusions - 排除某些传递依赖
依赖调解
当传递依赖同一个资源的不同版本时,maven会解析传递路径最短的资源,如果路径长度一样,则声明顺序靠前的资源被解析
优化依赖
利用如下命令分析依赖
mvn dependency:list
mvn dependency:tree
mvn dependency:analyze
标签:
原文地址:http://www.cnblogs.com/idel/p/4318280.html