5、maven的依赖和依赖范围

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 
主程序 
× 
测试程序
参与打包
× 
× 
参与部署 
× 
× 
 

猜你喜欢

转载自www.cnblogs.com/sunhao1234/p/12702681.html