maven高级学习
上一篇《maven是什么》介绍了最初级的maven学习,今天就趁着周末的大好时光一起学习下maven的高级知识吧。
1.maven工程要导入jar包的坐标,就必须要考虑解决jar冲突
1)解决jar包冲突的方式一:
第一声明优先原则:哪个jar包的坐标在靠上的位置,这个jar包就是先声明的。先声明的jar包坐标下的依赖包,可以优先进入项目中。
maven导入jar包中的一些概念:
直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包
传递依赖:项目中没有直接导入的jar包,可以通过项目直接依赖jar包传递到项目中去。
2)解决jar包冲突的方式二:
路径近者优先原则。直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖包。
3)解决jar包冲突的方式三:(推荐使用)
直接排除法:当我们要排除某个jar包下的依赖包,在配置exclusions标签的时候,内部可以不写版本号。因为此时依赖包使用的版本和默认和本jar包一样。

2.pom.xml文件中标签的认识
build标签是在maven中添加插件

dependencyManagement标签是锁定jar包版本(标签下的jar包没有导入jar包的作用 只是锁住的作用)
对于开发A项目者,若是引用了另一个项目B,则B中pom文件中导入的jar包会传递到A项目中,属于传递依赖,对于A项目开发者若直接导入B项目中导入的jar包 ,对于A来说,这是直接依赖,
那么直接依赖的jar包就会把我们B项目中传递过去的jar包覆盖掉,
为了防止该种情况出现,可以把B项目中主要的jar包锁住,那么其他依赖该项目的项目中。即使有同名jar包直接依赖,也无法覆盖。

统一管理jar包的版本

jar包的坐标的版本用EL表示表示

3.maven私服(window环境下的安装)
下载nexus安装包,dos窗口以管理员身份进入nexus安装包的bin目录下执行 nexus.bat install 启动 执行nexus.bat start
进入http://localhost:8081/nexus
账户名和密码默认是admin admin123

maven的setting文件配置自己的私服:

自己的项目上传私服pom文件的配置


从远程仓库下载jar包的settings配置


maven高级学习的更多相关文章
- Maven之 学习资料
整理maven的学习资料,长期更新. 一.视频 1.孔浩老师的 maven视频教程 二.博客 1.黄勇: maven那些事儿 使用 OSC Maven 仓库 三.书籍 1.<Maven ...
- C#高级学习群欢迎你(群号 128874886)
C#高级学习群,有着C# ,Asp.net ,Wpf等技术经验相当丰富的工程师,秉承着刘群主开源共享的精神,为新手和高手们提供了良好的学习交流平台,自创群以来,为群员解决了不少的技术难题,大大提高了学 ...
- Maven的学习资料收集--(九) 构建SSH项目以及专栏maven
在这里整合一下,使用Maven构建一个SSH项目 1.新建一个Web项目 可以参照前面的博客 2.添加依赖,修改pom.xml <project xmlns="http://maven ...
- python高级学习目录
1. Linux介绍.命令1.1. 操作系统(科普章节) 1.2. 操作系统的发展史(科普章节) 1.3. 文件和目录 1.4. Ubuntu 图形界面入门 1.5. Linux 命令的基本使用 1. ...
- Python高级学习笔记
Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...
- maven 高级玩法
maven 高级玩法 标签(空格分隔): maven 实用技巧 Maven 提速 多线程 # 用 4 个线程构建,以及根据 CPU 核数每个核分配 1 个线程进行构建 $ mvn -T 4 clean ...
- JS高级---学习roadmap---5 parts
JS高级---学习roadmap---5 parts part 1-3 part 4-5
- redis 高级学习和应用场景
redis 高级学习 1.redis 复制 2.redis 集群 3.哨兵机制 4.spring 与哨兵结合 5.数据恢复与转移 6.redis 的阻塞分析 redis 实战 1. 数据缓存(热点数据 ...
- Maven高级:01.maven分模块构建&&02.私服的应用
IntelliJ IDEA 2018.3.6 x64 07 Maven高级:01.maven分模块构建(上) 07 Maven高级:01.maven分模块构建(中) 07 Maven高级:01.mav ...
随机推荐
- 常用的 21 条 Linux 命令,生产力必备
一.文件和目录 1. cd命令 (它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径) cd /home 进入 '/ home' 目录 cd .. 返回上一级目录 c ...
- Integer.valueOf()和Integer.parseInt()区别
他们返回类型的不同是最大的原因. static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行分析. static Integer valueOf(int i) ...
- ndarray 数组的创建和变换
ndarray数组的创建方法 1.从python中的列表,元组等类型创建ndarray数组 x = np.array(list/tuple) x = np.array(list/tuple,dtype ...
- 菜鸡的Java笔记 第五 - java 程序逻辑控制
程序主要分为三种逻辑:顺序,分支,循环. if 分支语句 if分支语句是最为基础的分支操作,但是其有三种使用形式: if语句 if.....else 语句 if....else...if...el ...
- 为什么MySQL字符串不加引号索引失效?《死磕MySQL系列 十一》
群里一个小伙伴在问为什么MySQL字符串不加单引号会导致索引失效,这个问题估计很多人都知道答案.没错,是因为MySQL内部进行了隐式转换. 本期文章就聊聊什么是隐式转换,为什么会发生隐式转换. 系列文 ...
- Hadoop整体概述
目录 前言 core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 一.HDFS HDFS的设计理念 HDFS的缺点 1.NameNode ...
- 双非本科进大疆(SP)!
哈喽,大家好,我是仲一.今天和大家分享的是一位优秀双非本科生上岸大疆的经历(羡慕哭了...). 今年4月底的时候,这位学弟和我分享了他拿下oppo,京东,联发科实习offer的经历,当时我还发了朋友圈 ...
- MySQL 1064 错误
ERROR 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL s ...
- [cf1515I]Phoenix and Diamonds
将$n$类物品按照价值为第一关键字(从大到小).质量为第二关键字(从小到大)排序,此时贪心策略即依次贪心选(排序后)第$i$类的物品(其中$i$从1到$n$) 为了方便,排序后第$i$类物品质量.价值 ...
- Codeforces 878D - Magic Breeding(bitset,思维题)
题面传送门 很容易发现一件事情,那就是数组的每一位都是独立的,但由于这题数组长度 \(n\) 很大,我们不能每次修改都枚举每一位更新其对答案的贡献,这样复杂度必炸无疑.但是这题有个显然的突破口,那就是 ...