Joyen.fu
日中则昃,月盈则食。

dependencies包含一个到多个dependency申明项目依赖。

groupId、artifactId和version:依赖的基本坐标,Maven根据坐标才能找到需要的依赖。

type:依赖的类型,对应于项目坐标定义的packaging。默认jar

scope:依赖的范围。

optional:标记依赖是否可选。

exclusions:用来排除传递的性依赖。

依赖范围scope

Maven在编译项目住代码的时候需要使用一套classpath,在编译和执行测试的时候会使用另一套classpath。

依赖范围就是用来控制依赖与这三种classpath(编译classpath、测试classpath、运行classpath)的关系。Maven几个依赖范围:

compile:编译依赖范围,默认使用该依赖范围。此依赖范围的Maven对编译、测试、运行三种classpath都有效。

test:测试依赖范围,只对测试classpath有效。

provided:已提供的依赖范围。对编译和测试classpath有效,对运行时无效,例如servlet-api。

runtime:运行时依赖范围。对应测试和运行classpath有效,但在编译主代码时无效。例如jdbc驱动。

system:系统依赖范围。参考:http://www.blogjava.net/yxhxj2006/archive/2012/08/23/386148.html

import:导入依赖范围,不会对三种classpath产生实际影响。

传递性依赖

排除依赖

归类依赖

优化依赖

mvn dependency:list查看当前项目已解析依赖。

mvn dependency:tree 查看依赖树

mvn dependency:analyze 分析依赖,Used Undeclared dependencies项目中使用到但未声明的依赖,Unused declared dependencies项目中未使用但显式申明的依赖。

posted on 2014-11-19 23:25  Joyen.fu  阅读(237)  评论(0编辑  收藏  举报