栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven的依赖范围

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maven的依赖范围

引入依赖范围的原因示例:

1 例如Junit,将Junit的jar包打包到发布包是没有必要的。

2 例如servlet-api,为了编译通过,我们引入servlet-api jar包;但因为web容器也会提供servlet-api,如果将servlet-api打包至WAR包,就会造成依赖冲突。

示例:

 
  junit 
  junit 
  4.4 
  test 

 
 
  javax.servlet 
  servlet-api 
  3.1 
  provided 
 

 scope详解:

         1 complie

          默认值。参与当前项目的编译,后续的测试,运行,是一个比较强的依赖。

        2 test

        参与包括测试代码的编译,执行。比较典型的如junit。

        3 runtime

        被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。
        与compile相比,跳过编译而已.
        oracle jdbc驱动架包就是一个很好的例子,一般scope为runntime。另外runntime的依赖通常         和optional搭配使用,optional为true。我可以用A实现,也可以用B实现。

        4 provided

        打包的时候不包进去,别的设施(如Web Container)会提供。
        事实上该依赖理论上可以参与编译,测试,运行等周期。
        相当于compile,但是在打包阶段做了exclude的动作。

        依赖范围及作用

依赖范围(scope)主源码classpath可用测试源码classpath可用会被打包
compile 缺省值TRUETRUETRUE
testFALSETRUEFALSE
runtimeFALSETRUETRUE
providedTRUE(外界提供)TRUEFALSE

           

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/353921.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号