依赖配置说明 |
根元素project下的dependencies可以包含一个或多个dependency元素,以声明一个或者多个项目依赖 |
(1)groupId,artifactId,version是maven最基本的坐标? |
(2)type:依赖的类型,对应项目坐标定义的packaging。不定义默认是jar。 |
(3)scope:依赖范围 |
(4)optional:标记依赖是否可选 |
(5)exclusions:用来排除传递性依赖 |
注:大部分依赖声明只包含基本坐标 |
依赖范围 |
compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围,使用此依赖范围的Maven依赖,对于编译,测试,运行三种classpath都有效。例子spring-core |
test:测试依赖范围,使用此依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将将无法使用此类依赖。例子JUnit |
provided:已提供依赖范围。使用此依赖范围的Maven依赖,对编译和测试classpath有效,但在运行时无效。例子servlet-api |
runtime:运行时依赖范围。使用此依赖范围的Maven依赖,对于测试和运行classpath有效,但在编译主代码是无效。例子JDBC驱动实现。 |
system:系统依赖范围。该依赖与三种classpath的关系,和provided依赖范围完全一致。 |
但是,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径。由于此类依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,以此谨慎使用。 |
<dependency>?? |
??? <groupId>javax.sql</groupId>?? |
??? <artifactId>jdbc-stdext</artifactId>?? |
??? <version>2.0</version>?? |
??? <scope></scope>?? |
??? <systemPath>${java.home}/lib/rt.jar</systemPath>?? |
</dependency>?? |
|
查看项目已解析依赖 |