maven

maven的依赖范围

依赖范围是用来控制依赖与3种classpath(编译classpath,测试classpath,运行classpath)的关系。maven有以下几种依赖范围:

Compile:

编译依赖范围。默认使用此依赖范围,其下的maven依赖,对于编译,测试,运行classpath都有效。

Test:

测试依赖范围。只对测试classpath有效,编译主代码或运行项目时无法使用此依赖。典型例子如junit。

Provided:

已提供依赖范围。其对于编译与测试classpath有效,运行时无效。如在web开发时,只有在编译和测试时才用到servlet-api,将其设置为此范围,在运行时servlet-api由web容器提供,无须依赖。并且在打war包时,此范围的依赖不会打在WEB-INF/lib下。

Runtime:

运行时依赖范围。与provided相对,运行时classpath有效。典型例子如jdbc。

System:

系统依赖范围。其和三种classpath的关系,与provided一样。但是使用此依赖范围必须通过SystemPath元素显示地指定依赖文件的路径。由于与本机系统绑定,移植性差。如:
<dependency>
<groupId>tools</groupId>
<artifactid>tools</artifactId>
<version>1.6.30</version>
<scope>System</scope>
<systemPath>${java.home}/lib/tools.jar</systemPath>
</dependency>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容