【maven】依赖关系

1Dependency中 Scope 的作用

用来限制Dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态。

  • compile
    默认的scope,范围指的是编译范围有效,在编译和打包时都会将依赖存储进去。而且,这些dependencies 会传递到依赖的项目中。
  • provided
    跟compile相似,但是表明了dependency 由JDK或者容器提供,在编译和测试的过程有效,最后生成war包时不会加入,同时没有传递性。诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突 。
  • test
    指的是测试范围有效,在编译和打包时都不会使用这个依赖。
  • runtime
    在运行的时候依赖,在编译的时候不依赖 。

2.关于依赖传递性

A,B,C三个项目的依赖关系:A-B-C 。A为工具类JAR包,B为业务类JAR包,C为对外的发布包War。

  • 因为依赖传递性,C虽然同时使用A和B的jar包,但是在POM文件配置只需要设置依赖B(B也依赖A)。
  • 因为依赖传递性,如果A包发生变化后,只需要installA包,B包不需要也install。

3. 实际上遇到的情况

servlet-api 包因为使用provided,无法进行依赖传递,因此每个包都需要设置此依赖。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 10,739评论 0 13
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,734评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,291评论 6 342
  • 点击文章标题即可阅读文章 1、【荐读】奔跑吧,西红柿! 2、爷爷和老牛 3、一个亲子游创业先锋 4、走过时空于万相...
    青春实验室阅读 149评论 0 0
  • 今天又翻出来以前洗的照片 照片上的哥哥笑得干净又好看 那个时候总是意气风发的模样 眼睛里有光 后来光消失了 等到现...
    甜奎奶八阅读 279评论 0 0

友情链接更多精彩内容