5maven的依赖和依赖范围
Posted SunHao123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5maven的依赖和依赖范围相关的知识,希望对你有一定的参考价值。
5.1、maven的依赖
我们使用 Maven 最主要的就是使用它的依赖管理功能。在项目中添加依赖,只需在pom.xml文件中的<dependencies></dependencies>标签内部添加
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
即可。
5.2、maven的依赖范围
上面的依赖信息中除了目标 jar 包的坐标(gav)外还有一个 scope 设置,scope中的内容可以设置依赖的范围。
依赖的范围有几个可选值,我们经常使用的是:compile(默认)、test、provided 这三个。如果不设置scope,则默认scope的范围是compile。
[1]、从项目的结构理解 compile 和 test 的区别
compile范围依赖的JAR包,可以在主程序中(src/main/java包下)使用,也可以在测试程序中(src/test/java包下)使用。
test范围依赖的JAR包,只可以在测试程序中(src/test/java包下)使用,在主程序中是无法使用的。
[2]、从开发和运行这两个不同阶段理解 compile 和 provided 的区别
provided 表明该包只在编译和测试的时候使用,部署阶段并不使用,最常用的一个案例就是javax.servlet-api和jsp-api,web项目在开发阶段,会使用到servlet-api,部署阶段并不需要使用,因为servlet容器,如Tomcat内部已经集成了servlet-api,如果部署阶段也将servlet依赖打包到项目中,则部署的时候会和Tomcat内部的servlet-api冲突。
所以在使用maven构建的web项目中,依赖servlet-api时,要修改其依赖范围为<scope>provided</scope>。
总结:
compile
|
test
|
provided
|
|
主程序
|
√
|
×
|
√
|
测试程序
|
√
|
√ |
√
|
参与打包
|
√
|
×
|
× |
参与部署
|
√
|
×
|
× |
以上是关于5maven的依赖和依赖范围的主要内容,如果未能解决你的问题,请参考以下文章