依赖原则:解决模块工程之间的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):聚合

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

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

分享知识-快乐自己:Maven 相关原理的更多相关文章

  1. maven 工作原理和添加jar包技巧

        相 信只要做过 Java 开发的童鞋们,对 Ant 想必都不陌生,我们往往使用 Ant 来构建项目,尤其是涉及到特别繁杂的工作量,一个 build.xml 能够完成编译.测试.打包.部署等很多 ...

  2. Maven 核心原理

    Maven 核心原理 标签 : Java基础 Maven 是每一位Java工程师每天都会接触的工具, 但据我所知其实很多人对Maven理解的并不深, 只把它当做一个依赖管理工具(下载依赖.打包), M ...

  3. maven 相关

    maven相关 一 windows安装配置maven: 1. 官网下载最新版本maven,发布日志时为: maven3.2.1 2.解压maven到相应的目录:配置环境变量: MAVEN_HOME:D ...

  4. Maven学习总结(19)——深入理解Maven相关配置

    MAVEN2的配置文件有两个settings.xml和pom.xml settings.xml:保存的是本地所有项目所共享的全局配置信息,默认在maven安装目录的conf目录下,如果没有安装mave ...

  5. 5.Maven和Eclipse整合(两种方式进行插件的安装),Maven相关设置,Eclipse下创建Maven项目

     1  第一种方式是:在连网的情况下.通过在helpàInstall下安装. 新的地址是:http://download.eclipse.org/technology/m2e/releases 2 ...

  6. Maven - 工作原理

    章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Maven – 构建生命周期.阶段 ...

  7. 常见的GAN网络的相关原理及推导

    常见的GAN网络的相关原理及推导 在上一篇中我们给大家介绍了GAN的相关原理和推导,GAN是VAE的后一半,再加上一个鉴别网络.这样而导致了完全不同的训练方式. GAN,生成对抗网络,主要有两部分构成 ...

  8. 分享知识-快乐自己:解决 Maven 无法下载 fastdfs-client-java 依赖。

    因为fastdfs-client-java-1.27-SNAPSHOT.jar这个依赖包在maven中央仓库是没有的. 需要自己编译源码成jar本地安装到maven 的本地仓库,安装完以后就能正常引用 ...

  9. 分享知识-快乐自己:Liunx—Maven 部署步骤

    第一步: 点我下载 Liunx—Maven Linux命令下载:wget [下载文件存放路径]   [下载文件地址] 第二步: 上传 Maven 并解压到 指定的目录:(上传方式 xftp 或 rz ...

随机推荐

  1. Weka学习之预处理连接MySql(二)

    载入数据 (一)打开文件 (二) 打开url (三) 打开数据库 (四)从一些数据生成器(DataGenerators)中生成人造数据    这篇主要写(三)中的连接mySql          网上 ...

  2. 【JMeter4.0学习(七)】之配置元素

    目录 CSV Data Set Config HTTP Cookie管理器 HTTP信息头管理器 JDBC Connection Configuration 用户定义的变量 计数器 一.CSV Dat ...

  3. 推荐一个android 日期时间选择器(转)

    最近接触了日期选择的功能,那么肯定得需要一个日期选择控件,Android 系统有自带的 DatePicker 控件,但是不说这个控件有多 难看吧,现在 Android 手机版本那么多,用户弹出来的控件 ...

  4. Downloading jQuery

    Compressed and uncompressed copies of jQuery files are available. The uncompressed file is best used ...

  5. vi相关命令

    vi相关命令在行首加#        :% s/^/#        删除#        :% s/#//在行末加#        :% s/$/#        删除        :% s/#$ ...

  6. html5-框架网站

    1.html5+:http://www.html5plus.org/ 2.hbuilder:http://www.dcloud.io/ 3.mui:http://dev.dcloud.net.cn/m ...

  7. 验证-- email类型输入框(电子邮件地址)--multiple

    如果需要一个用来填写电子邮件地址的输入框,可以使用email类型.这样浏览器可以帮我们验证格式是否正确,而不需要自己写验证规则.原文:HTML5新控件 - email类型输入框(电子邮件地址) 1,只 ...

  8. Elasticsearch宕机问题

    个人博客:https://blog.sharedata.info/ Elasticsearch 突然宕机,每次重启都只生成错误日志报错信息:## There is insufficient memor ...

  9. Razor里写函数

    asp.net mvc的视图里使用Razor来书写服务器代码,人尽皆知.可以常常见到里面写上for循环语句,输出一大堆东东,牛逼得很. 可是,如果循环语句还不能满足我们的要求,需要定义一个函数来调用, ...

  10. Python 字符串拼接、格式化输出、深浅复制

    拼接:"+"号(同类型可拼接) >>>li = [1,2] >>>li + li [1,2,1,2] >>>li*2 [1,2 ...