jar包依赖管理

简介: 随着项目不断的迭代、拆分,项目之间的jar包依赖关系复杂度也是不断的变大,看不懂的编译报错,头大的启动问题都在不断的折磨着我们。 解决jar包管理思路 在这里谈谈我的感受和方法,主要概括为: 1、通过顶层统一的父pom来管理spring的jar包版本号,确保spring的core、context、transaction、web等的版本统一。spring多版本的交叉使用,会引入一些

随着项目不断的迭代、拆分,项目之间的jar包依赖关系复杂度也是不断的变大,看不懂的编译报错,头大的启动问题都在不断的折磨着我们。

解决jar包管理思路

在这里谈谈我的感受和方法,主要概括为:

1、通过顶层统一的父pom来管理spring的jar包版本号,确保spring的core、context、transaction、web等的版本统一。spring多版本的交叉使用,会引入一些看不懂的编译及启动错误。可以借助于dependencyAnalyzer插件来分析冲突(idea插件库)。

2、封装中间件并分不同的模块,如:kafka、dbcp、dubbo、es、redis、mongodb、utils等作为基础组件(生成jar包),不同的项目中只针对用到的中间件基础组件做依赖。

3、和第1点是一个思路,通过顶层统一的父pom来管理第三方公共jar包,例如:apache的commons-collections、google的guava、github的pageHelper、http的okhttp等。

4、项目交叉依赖可以通过在顶层父pom和底层模块之间增加多级父pom,整体的依赖结构是树状结构。

5、服务分层(基础service层、服务编排层、控制器层,其中服务编排层还可以根据实际情况再做分层),只有层次分明,系统才具备扩展性。快速迭代、上线才简单。同层服务相互依赖的管理成本和运行成本只会变的越来越大。

以上三点是我的实践总结,从另外一个视角来看问题,解决问题,希望会给你带来一些灵感。

目录
相关文章
|
6月前
|
Java Maven
maven依赖原则以及jar包冲突
该文介绍了Maven依赖原则:最短路径优先,申明顺序优先和覆写优先。当有冲突时,Maven选择路径最短的版本,按POM中声明顺序加载,并且子POM的依赖优先于父POM。解决冲突最佳方式是通过`mvn dependency:tree`检查依赖树并调整POM文件中的坐标顺序。
129 2
|
3月前
|
Java 中间件 测试技术
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
|
3月前
|
Java Linux Maven
java依赖冲突解决问题之容器加载依赖jar包如何解决
java依赖冲突解决问题之容器加载依赖jar包如何解决
|
3月前
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
3月前
|
Java 测试技术 Maven
java依赖冲突解决问题之多个版本的jar包中都没有找到缺失的方法如何解决
java依赖冲突解决问题之多个版本的jar包中都没有找到缺失的方法如何解决
|
3月前
|
Java 测试技术 数据库
容器镜像解析问题之解析 Java 应用依赖时识别 jar 包如何解决
容器镜像解析问题之解析 Java 应用依赖时识别 jar 包如何解决
25 0
|
3月前
|
Java Maven Windows
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
50 0
|
6月前
|
Java Maven
【亮剑】Java项目开发中常遇到Jar 包依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起
【4月更文挑战第30天】Java项目开发中常遇到依赖冲突问题,主要由不同版本库、循环依赖、传递依赖和依赖范围不当引起。解决冲突需分析依赖树、定位冲突源、调整类加载顺序等。方法包括排除冲突依赖、统一管理版本、限定依赖范围、合并冲突类、升级降级库版本及拆分模块。关注依赖关系,及时解决冲突,保障项目稳定运行。
403 0
|
6月前
|
存储 XML Java
【Maven技术专题】「入门到精通」教你如何使用Maven中引用依赖本地Jar包,并进行打包输出
【Maven技术专题】「入门到精通」教你如何使用Maven中引用依赖本地Jar包,并进行打包输出
508 0
|
6月前
|
SQL 数据采集 Java
Java【代码分享 02】商品全部分类数据获取(建表语句+Jar包依赖+树结构封装+获取及解析源代码)包含csv和sql格式数据下载可用
Java【代码分享 02】商品全部分类数据获取(建表语句+Jar包依赖+树结构封装+获取及解析源代码)包含csv和sql格式数据下载可用
73 0