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的依赖和依赖范围的主要内容,如果未能解决你的问题,请参考以下文章

maven依赖管理(依赖配置依赖传递依赖冲突依赖范围)

Maven 的依赖范围和传递

Maven依赖及范围

maven依赖配置和依赖范围

maven依赖配置和依赖范围

maven依赖和传递