首页 > 其他 > 详细

maven依赖范围

时间:2021-03-31 19:17:54      阅读:21      评论:0      收藏:0      [点我收藏+]

一个例子

以servlet的maven依赖为例

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

这里的scope就是他的依赖范围,maven会根据时机去自动判断是否导入该jar包

scope参数

依赖范围 编译有效 测试有效 运行有效 例子
compile Y Y Y spring-core
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y JDBC驱动
system Y Y - 本地的,Maven仓库之外的类库
  • compile编译、测试、运行,在编译时依赖,并且在测试和运行时也依赖
    例如: strus-core、spring-beans。打到war包或jar包

  • provided编译、和测试有效,在编译和测试时需要
    例如: servlet-api就是编译和测试有用,在运行时不用(tomcat容器已提供)不会打到war

  • runtime:测试、运行有效
    例如: jdbc驱动包,在开发代码中针对java的jdbc接口开发,编译不用在运行和测试时需要通过jdbc驱动包(mysq驱动)连接数据库,需要的会打到war

  • test:只是测试有效,只在单元测试类中用
    例如: junit
    不会打到war

按照依赖强度,由强到弱来排序:(理解)

compile>provided> runtime> test

maven依赖范围

原文:https://www.cnblogs.com/kehao/p/14602480.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!