梳理项目的pom文件
【前言】
Maven是一款十分棒的项目管理工具;毫无疑问pom文件是Maven项目中的命脉,管理着各个jar包之间相互依赖关系;
最近将项目中的pom文件重新梳理了一遍,发现pom文件如果乱了,后续会有无数个头疼的坑;接下来就为大家分享一下这次
的pom梳理流程,从而避免给以后留坑。
【精彩整理旅程】
一、整理前项目中暴露出问题
1、同一个jar包存在N个版本,非常容易出现由于版本不一致而引起问题(如:某些包版本不一致后会包名可能会变);
2、传递依赖,一旦jar包升级,会存在潜在风险;
3、许多无用依赖,导致打出的包巨大,运行时浪费资源;
4、项目之间依赖关系紊乱,不利于项目管理;
二、对项目进行优化
1、明确项目整体依赖结构
(1)结构关系
root
----tool
----各个微服务聚合pom
----Api
----Service
----Web
(2)各个节点的含义
a.root:根Pom,控制所有依赖包的版本;
b.tool:工具类,项目中公共调用方法;
c.各个微服务聚合Pom:聚合工程方便识别各个微服务;
d.Api:本服务的对外接口及DTO;
e.Service:本服务的Service和Dao层;
f.Web:本服务的Controller层;
2、杜绝传递依赖
(1)tool中的依赖所有jar的scope属性设置为provided;
(2)Api中的依赖所有jar的scope属性设置为provided;
3、Jar包版本统一管理
(1)项目中所有依赖的jar包版本由root通过dependencyManagement统一管理,将版本号用properties统一定义方便集体升级;
(2)每隔一段时间(一个月)查看项目中可升级的Jar包版本(需根据自己的项目情况),大部分情况下建议大家使用
高版本jar包,因为一般情况下高的版本是对低版本升级;
4、好用maven命令
(1)分析jar包是否有用:mvn dependency:analyze
(2)分析依赖关系:mvn dependency:tree
(3)查看可升级的jar包:mvn versions:display-dependency-updates
【总结】
1、在坤哥的带领下对项目的Pom进行一次全面整理,为项目的发展保驾护航,避免一些坑;
2、发现问题,解决问题,直面项目中的痛点。
梳理项目的pom文件相关推荐
- maven项目的pom文件中各标签理解
本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...
- maven项目的pom文件中常用的简单的标签理解
maven的pom文件一些标签的理解 在本篇文章中,我只是将pom文件中的一些常用的并且比较简单的标签理解标记注释了.还有很多并常用但是也很重要的这里并没有列出.因为本人水平也有限的,所以请谅解. & ...
- 如何改变maven项目的pom文件中默认的主代码目录 以及默认的测试代码目录?
zhaodao.baidu.com: <project> ... <build> <!-- 默认的主代码目录 --> <sourceDirectory> ...
- 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令
手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...
- 【IDEA】关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案
[IDEA]关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案 参考文章: (1)[IDEA]关于 IDEA 中新建 web 项目的 webapp 文 ...
- 【VS2022引用其他项目的.cs文件】
VS2022引用其他项目的.cs文件 问题 项目中需要引入公共的枚举类,方便统一使用. 问题 项目中需要引入公共的枚举类,方便统一使用. 1.首先复制原先的文件(其他项目中的.cs文件),然后打开VS ...
- 批量给项目的java文件添加licence文件头
批量给项目的java文件添加licence文件头 package com.cs.test.springboot;import java.io.File; import java.io.FileWrit ...
- SSM项目的excel文件上传并添加到数据库
SSM项目的excel文件上传并添加到数据库(新手,不足之处请多多指教) 基于学校的课设,要用到excel文件的上传和数据库导入,在网上找了好多demo,最后找到一篇使用poi的,经过修改后,可以正常 ...
- SpringBoot项目的pom.xml文件中maven-project-info-reports-plugin报红解决办法
今天在创建SpringBoot项目时发现导包是没有任何问题的,但是pom文件中maven-project-info-reports-plugin一直有报红,如下图所示: 解决方案: 在该pom文件中引 ...
最新文章
- HBase–常用API操作篇
- Web Components 入门实例教程
- 抖音怎么上传无损画质_抖音怎么上传高清视频?干货,从此告别模糊
- Android 监听锁屏、解锁、开屏 操作
- springboot整合filter
- error while loading shared libraries
- html5 内容载入,HTML5 的 DOMContentLoaded 和 onload
- 超赞!终于有网友用Java实现了第三方qq账号登录...
- 高速PCB设计怎么布局,资深工程师透露了其中的秘密,都是干货
- win10:无法加载文件 C:\Users\LENOVO\AppData\Roaming\npm\babel-node.ps1,因为在此 系统上禁止运行脚本
- Python高级编程第2版_张亮 阿信(译)_人民邮电出版社_2017-10_v2_完整版
- JeecgBoot 3.4.3-GA 版本发布,开源免费的企业级低代码平台
- 羊皮卷之七:我要笑遍世界
- linux远程判断目录是否存在,用shell判断远程主机上是否存在某个文件
- 怎么把PDF分割成几个文件?分享几种分割方法
- 常见的SQL注入类型
- 使用jQuery判断浏览器UA类型
- 乐视实行四天半工作制,贾跃亭羡慕的表示下周回国
- 如何使用cocos2dx 制作一个多向滚屏坦克类射击游戏-第二部分
- Python实用文档(持更)
热门文章
- “人工智障”,我们还能忍你多久?
- 开源改变了小米什么?
- 数据库乱象丛生,开发者该如何选择?
- SDK 可能是数百万 iPhone 上的特洛伊木马
- 字节跳动算法工程师总结:java资料文件
- 带你重新认识ZooKeeper!java数组合并去重
- c语言中声明外部函数需要添加的关键字,C语言中声明和定义的区别——分析extern关键词。...
- python正则表达式案例_Python正则表达式使用经典实例
- php cksql,金蝶KSQL规范
- java如何解析word大纲_Java POI 解析word文档