【Maven】——优化依赖
来源:互联网 发布:单片机复位电路原理 编辑:程序博客网 时间:2024/06/01 10:36
上篇说到传递依赖,其优点我们有目共睹,其为我们提高了很多效率,减少了很多工作量。但现实是把双刃剑,完美中总会有所不足。Maven的传递依赖给我们带来的点点不足便是:我们本需要依赖的一些jar包,可能通过传递依赖的形式依赖了,程序固然不会报错。但从长远看,我们交接项目后,新人会对我们的依赖不清不楚。
所以Maven提倡将必要的依赖显式声明,让开发者对Maven项目的依赖了然于胸,并可对其进行优化。如:去除多余的依赖,显式声明必要的依赖。
本篇,主要带大家了解两个mvn命令,这两个命令都可以帮我们分析项目实际依赖情况,以ITOO项目为例:
mvn dependency:tree
通过该命令,我们可以得到项目的依赖树:
这棵树,体现的是:直接在当前项目POM声明的依赖为顶层依赖,如itoo-basic-api。而这些顶层依赖的依赖则定义为二层依赖,如:itoo-base,以此类推......
本模块本该依赖itoo-base,但POM中我并没有依赖itoo-base,编译运行却没有报错,这就是因为我依赖了itoo-basic-api,而itoo-basic-api依赖了itoo-base。所以我的模块传递依赖了itoo-base。
POM文件:
对于我们需要声明但已经传递依赖过来,或者我们不需要却声明的依赖。有一个更方便的命令帮我们进行分析:
mvn dependency:analyze
其中:Used undeclared dependencies found(用到却没有显示声明),提示我们项目用到了itoo-base,却没有显式声明,则此时我们最好将其显式声明,使POM清晰明了,并且可控。
Unused declared dependencies found(没有用到却声明了),提示我们这些jar包没有用到,但我们声明了。这样的需要注意,我们不能简单地直接删掉其声明,而应该仔细分析。由于dependency:analyze只会分析编译主代码和测试代码需要用到的依赖,一些执行测试和运行时需要的依赖它无法发现。很显然,itoo-easyui是我们UI必须要用到的,因此不应该删除依赖声明。所以,此命令可以帮助我们分析找到一些无用的依赖,但也需要我们去分析。
总结,Maven优化依赖不可小觑,我们项目就由于前期对此不重视,导致项目jar包冗余,服务器内存经常不足或宕机,经优化后,本模块从34M,瘦身至6M,效果显著。
- 【Maven】——优化依赖
- maven优化依赖常用命令
- 【Maven】——传递依赖
- maven依赖——RSA
- Maven的排除依赖、归类依赖、优化依赖
- 从零到一学Maven——依赖范围及传递依赖
- Maven依赖调解、 可选依赖、 依赖冲突 排除、 归类依赖、优化依赖
- Maven解读:项目依赖管理如何优化
- maven使用命令查看优化依赖
- Maven 核心概念——依赖管理
- Maven实战——Maven的坐标和依赖
- Maven学习总结(二)——Maven依赖
- Maven学习笔记十七:Maven坐标和依赖(最佳实践之优化依赖)
- Maven学习记录5——Eclipse添加maven依赖找不到maven库中的jar
- Maven学习笔记(三)——坐标和依赖
- 《maven实战》读书笔记(二)——坐标与依赖
- maven学习笔记——坐标和依赖
- Maven之——坐标和依赖(上)
- JAVA入门
- 括号匹配
- RadioButton动态添加drawable
- android学习(十一) 使用分享菜单
- 在Ubuntu中安装R的几种方式总结
- 【Maven】——优化依赖
- dp专题 第八题 最长公共子上升序列
- Scala之特质Trait
- Jedis分片连接池(分布式)
- Sprite Animations精灵动画
- vim的简单配置
- Android安全机制讲解
- C#继承浅谈
- SynchronizedPool对象池使用