博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven笔记(4)
阅读量:6003 次
发布时间:2019-06-20

本文共 912 字,大约阅读时间需要 3 分钟。

项目管理利器(Maven)——依赖范围(classPath:编译,运行,测试)

1.compile:默认范围,编译测试运行都有效
2.provided:在编译和测试时有效
3.runtime:在测试和运行时有效
4.test:只在测试时有效
5.system:在编译和测试时有效,与本机系统关联,可移植性差
6.import:导入的范围,它只使用在dependencyManagement中,表示从其他的pom中导入dependency的配置

 

项目管理利器(Maven)——依赖传递

假设B项目依赖A项目,C项目又依赖B项目,那么在C项目中运行compile时,在引进B项目的同时,自动就把A项目也引进来了。如果不想将A项目导入的话,可以使用exclusions下设置exclusion,然后将A项目的坐标添加即可。

exclusions>

<exclusion>
--引入传递依赖的坐标 实现剔除某个传递依赖
</exclusion>
</exclusions>

 

项目管理利器(Maven)——依赖冲突

如果C和D依赖了一个不同版本的相同的构件C。
①:短路优先:
会优先解析路径短的版本(D)。
A -> B -> C -> X(jar)
A -> D -> X(jar) 优先解析短的
②:先声明先优先:A->C->jar,A->D->jar
如果路径长度相同,则谁先声明,先解析谁(C)。

 

项目管理利器(Maven)——聚合

1.聚合:如果项目D依赖项目C,项目C依赖项目B,项目B依赖项目A,我们需要一个个安装这项项目,在Maven中有一种方式可以将多个项目一次性安装,这就是聚合的概念。简单讲就是,需要人工多次操作的,只要MAVEN能理解,一次性告诉他,他就能帮我们做这件单调烦人的事情了。——使用<modules></modules>这个标签。
2.继承:多次使用到的依赖,比如:单元测试,没有必要在所有的项目中都引用一下,此时就可以采用继承的方式来实现,先来一个父级的POM.XML然后再继承此POM.XML

转载于:https://www.cnblogs.com/LeoBoy/p/5792135.html

你可能感兴趣的文章
Elasticsearch 参考指南(安装X-Pack)
查看>>
[LintCode] 604. Design Compressed String Iterator
查看>>
微信小程序黑客马拉松即将开始,来做最酷的 Mini Program Creators!
查看>>
JavaScript基础---函数
查看>>
前端每日实战:120# 视频演示如何用纯 CSS 创作锡纸撕开的文字效果
查看>>
Laravel实用小功能
查看>>
matplotlib绑定到PyQt5(有菜单)
查看>>
利用Powershell和ceye.io实现Windows账户密码回传
查看>>
Windows 8.1 今年 1 月市场份额超 Vista
查看>>
《设计团队协作权威指南》—第1章1.5节总结
查看>>
Chair:支付宝前端团队推出的Node.js Web框架
查看>>
《Total Commander:万能文件管理器》——第3.8节.后续更新
查看>>
BSD vi/vim 命令大全(下)[转]
查看>>
css3中变形与动画(一)
查看>>
[XMove-自主设计的体感解决方案] 系统综述
查看>>
设计模式 ( 十五 ) 中介者模式Mediator(对象行为型)
查看>>
【LINUX学习】磁盘分割之建立primary和logical 分区
查看>>
【YUM】第三方yum源rpmforge
查看>>
IOS(CGGeometry)几何类方法总结
查看>>
才知道系列之GroupOn
查看>>