分享知识-快乐自己:Maven 相关原理
依赖原则:解决模块工程之间的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 相关原理的更多相关文章
- maven 工作原理和添加jar包技巧
相 信只要做过 Java 开发的童鞋们,对 Ant 想必都不陌生,我们往往使用 Ant 来构建项目,尤其是涉及到特别繁杂的工作量,一个 build.xml 能够完成编译.测试.打包.部署等很多 ...
- Maven 核心原理
Maven 核心原理 标签 : Java基础 Maven 是每一位Java工程师每天都会接触的工具, 但据我所知其实很多人对Maven理解的并不深, 只把它当做一个依赖管理工具(下载依赖.打包), M ...
- maven 相关
maven相关 一 windows安装配置maven: 1. 官网下载最新版本maven,发布日志时为: maven3.2.1 2.解压maven到相应的目录:配置环境变量: MAVEN_HOME:D ...
- Maven学习总结(19)——深入理解Maven相关配置
MAVEN2的配置文件有两个settings.xml和pom.xml settings.xml:保存的是本地所有项目所共享的全局配置信息,默认在maven安装目录的conf目录下,如果没有安装mave ...
- 5.Maven和Eclipse整合(两种方式进行插件的安装),Maven相关设置,Eclipse下创建Maven项目
1 第一种方式是:在连网的情况下.通过在helpàInstall下安装. 新的地址是:http://download.eclipse.org/technology/m2e/releases 2 ...
- Maven - 工作原理
章节 Maven – 简介 Maven – 工作原理 Maven – Repository(存储库) Maven – pom.xml 文件 Maven – 依赖管理 Maven – 构建生命周期.阶段 ...
- 常见的GAN网络的相关原理及推导
常见的GAN网络的相关原理及推导 在上一篇中我们给大家介绍了GAN的相关原理和推导,GAN是VAE的后一半,再加上一个鉴别网络.这样而导致了完全不同的训练方式. GAN,生成对抗网络,主要有两部分构成 ...
- 分享知识-快乐自己:解决 Maven 无法下载 fastdfs-client-java 依赖。
因为fastdfs-client-java-1.27-SNAPSHOT.jar这个依赖包在maven中央仓库是没有的. 需要自己编译源码成jar本地安装到maven 的本地仓库,安装完以后就能正常引用 ...
- 分享知识-快乐自己:Liunx—Maven 部署步骤
第一步: 点我下载 Liunx—Maven Linux命令下载:wget [下载文件存放路径] [下载文件地址] 第二步: 上传 Maven 并解压到 指定的目录:(上传方式 xftp 或 rz ...
随机推荐
- 如何玩转最新的项目的搭配springmvc+mybatis+Redis+Nginx+tomcat+mysql
上一次完成nginx+tomcat组合搭配,今天我们就说说,这几个软件在项目中充当的角色: 要想完成这几个软件的组合,我们必须知道和熟悉应用这个框架, 一: Nginx:在项目中大多数作为反向代理服务 ...
- 【转】使用Python学习selenium测试工具
出处:https://my.oschina.net/u/1433482/blog/633231?fromerr=vaxqh9bn
- PHP插入法排序
/** 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法. 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描, 找到相应位置并插入.插入排序在实现上 ...
- 3354 [IOI2005]河流
题目描述 几乎整个Byteland王国都被森林和河流所覆盖.小点的河汇聚到一起,形成了稍大点的河.就这样,所有的河水都汇聚并流进了一条大河,最后这条大河流进了大海.这条大河的入海口处有一个村庄——名叫 ...
- (比赛)B - Super Mobile Charger
B - Super Mobile Charger Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & ...
- iOS框架你了解多少?
1.iOS 系统可以分为以下四层,每个框架对应IOS系统里的一层,每层建立在它下面层的上面.应该尽量使用上层的框架来代替下面的框架.更高层次的框架是对底层框架基于对象的抽象.以下列出几个iOS开发的常 ...
- lua的弱弱引用表
lua有GC.细节无需太关注.知道些主要的即可,能local就一定不要global: 还有在数组里的对象,除非显式=nil,否则非常难回收: 只是能够用弱引用表来告诉GC. 外部引用为0,就不要管我, ...
- 模仿jquery框架源码
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- ecmobile实现支付宝支付和百度云推送遇到的问题及解决方案(android)
1.首先检测支付账户是否开通快捷支付服务,如果开通后,那么公钥是否上传(支付宝问题一定要找支付宝客服解决,找其他人没有用,支付宝客服可以帮你分析底层原因) 2.修改app配置文件:alipay_cal ...
- debian下使用ft232为stm32f429i-discovery烧写uboot和uImage
操作系统:debian 软件: openocd minicom 硬件: MiniUSB线.stm32f429i-discovery, WaveShare FT232串口模块(可以在淘宝上买到) 关 ...