依赖原则:解决模块工程之间的Jar冲突问题

1):情定设定:验证路径最短者优先原则

创建三个工程如下:

Hello:并且以来 log4j.1.2.17.jar

HelloFriend:依赖了工程 Hello,按理说HelloFriend也会间接的依赖了 log4j.1.2.17.jar  但是由于一些特殊原因 明确声明了 为  .14 的jar

MakeFriends:依赖了 HelloFriend ,大家一开始以为会间接的会依赖两个 jar。实际MakeFriends 只能依赖一个。(寻址一个路径最近的)

2):情定设定:路径相同时先声明者优先

创建三个工程如下:

HelloFriend:依赖 log4j.1.2.14

OurFriends:依赖 log4j.1.2.17

MakeFriends:分别引用依赖,HelloFriend 与 OurFriends

这里的 "声明" 的先后顺序指的是 dependency  标签配置的先后顺序

 3):同一版本号

这里的版本统一为4.0的(如果统一版本号怎么办那?)

配置方式:如下(使用 properties 自定义同一版本号)

使用 ${ atguigu.spring.version }

4):继承

现状:Hello 依赖的 junit :4.0

   HelloFriend 依赖的 junit:4.0

   MakeFriends 依赖的 junit:4.9

需求:统一管理各个模块工程中对 junit 依赖的版本

解决思路:将 junit 依赖统一提取到 ” 父 “ 工程中,在子工程声明 junit 依赖时不指定版本。

        以父工程中统一设定的为准。

操作步骤:

1、创建一个 Maven 工程作为父工程,注意:打包方式为 Pom

2、在子工程中声明对父工程的引用

3、将子工程的坐标中与父工程坐标中重复的内容删除

 

4、在父工程中统一 junit 的依赖

5、在子工程中删除 junit 依赖的版本号部分。

注意:配置集成后,执行安装(初始化到本地)命令时先要安装父工程。

5):聚合

作用:一键安装各个模块工程

配置方式:在一个 总的聚合工程 中配置各个参与聚合的模块

最新文章

  1. Android保持屏幕常亮的方法
  2. Linux 基础入门 第一周9.14~9.20
  3. XPath学习:parent,child
  4. ubuntu安装vim
  5. javac。java版本切换
  6. windows上制作懒人版MAC cdr/iso
  7. git pull VS git fetch&merge(good)
  8. ARC forbids explicit message send of 'autorelease'错误
  9. excel中自动变为插入语句的写法
  10. Django学习-4-request获取数据
  11. 【Unity与23种设计模式】访问者模式(Visitor)
  12. JAVA时间Date工具类
  13. Adb工具的简单使用
  14. Java学习--变量
  15. Confluence 6 log4j 日志级别
  16. 使用dbeaver查mysql的表会导致锁表的问题
  17. Win强制删除文件windows批处理强行删除文件
  18. PHP中使用Elasticsearch
  19. (转)大白话讲解如何给github上项目贡献代码
  20. Java编程思想学习笔记——注解

热门文章

  1. Ajax主要用来完成哪些工作?
  2. 在Ubuntu下编译FFmpeg
  3. Android中的常见通信机制和Linux中的通信机制
  4. Jmeter 02 JMeter体系结构
  5. douban_转自熊博网——牛逼顿
  6. 九度OJ 1209:最小邮票数 (遍历)
  7. [转】IIS:Do not nest virtual directories
  8. react create app ,nginx服务器配置
  9. [转载]Java集合容器简介
  10. ABAP文件选择框函数