【前言】

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文件相关推荐

  1. maven项目的pom文件中各标签理解

    本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...

  2. maven项目的pom文件中常用的简单的标签理解

    maven的pom文件一些标签的理解 在本篇文章中,我只是将pom文件中的一些常用的并且比较简单的标签理解标记注释了.还有很多并常用但是也很重要的这里并没有列出.因为本人水平也有限的,所以请谅解. & ...

  3. 如何改变maven项目的pom文件中默认的主代码目录 以及默认的测试代码目录?

    zhaodao.baidu.com: <project> ... <build> <!-- 默认的主代码目录 --> <sourceDirectory> ...

  4. 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令

    手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...

  5. 【IDEA】关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案

    [IDEA]关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案 参考文章: (1)[IDEA]关于 IDEA 中新建 web 项目的 webapp 文 ...

  6. 【VS2022引用其他项目的.cs文件】

    VS2022引用其他项目的.cs文件 问题 项目中需要引入公共的枚举类,方便统一使用. 问题 项目中需要引入公共的枚举类,方便统一使用. 1.首先复制原先的文件(其他项目中的.cs文件),然后打开VS ...

  7. 批量给项目的java文件添加licence文件头

    批量给项目的java文件添加licence文件头 package com.cs.test.springboot;import java.io.File; import java.io.FileWrit ...

  8. SSM项目的excel文件上传并添加到数据库

    SSM项目的excel文件上传并添加到数据库(新手,不足之处请多多指教) 基于学校的课设,要用到excel文件的上传和数据库导入,在网上找了好多demo,最后找到一篇使用poi的,经过修改后,可以正常 ...

  9. SpringBoot项目的pom.xml文件中maven-project-info-reports-plugin报红解决办法

    今天在创建SpringBoot项目时发现导包是没有任何问题的,但是pom文件中maven-project-info-reports-plugin一直有报红,如下图所示: 解决方案: 在该pom文件中引 ...

最新文章

  1. HBase–常用API操作篇
  2. Web Components 入门实例教程
  3. 抖音怎么上传无损画质_抖音怎么上传高清视频?干货,从此告别模糊
  4. Android 监听锁屏、解锁、开屏 操作
  5. springboot整合filter
  6. error while loading shared libraries
  7. html5 内容载入,HTML5 的 DOMContentLoaded 和 onload
  8. 超赞!终于有网友用Java实现了第三方qq账号登录...
  9. 高速PCB设计怎么布局,资深工程师透露了其中的秘密,都是干货
  10. win10:无法加载文件 C:\Users\LENOVO\AppData\Roaming\npm\babel-node.ps1,因为在此 系统上禁止运行脚本
  11. Python高级编程第2版_张亮 阿信(译)_人民邮电出版社_2017-10_v2_完整版
  12. JeecgBoot 3.4.3-GA 版本发布,开源免费的企业级低代码平台
  13. 羊皮卷之七:我要笑遍世界
  14. linux远程判断目录是否存在,用shell判断远程主机上是否存在某个文件
  15. 怎么把PDF分割成几个文件?分享几种分割方法
  16. 常见的SQL注入类型
  17. 使用jQuery判断浏览器UA类型
  18. 乐视实行四天半工作制,贾跃亭羡慕的表示下周回国
  19. 如何使用cocos2dx 制作一个多向滚屏坦克类射击游戏-第二部分
  20. Python实用文档(持更)

热门文章

  1. “人工智障”,我们还能忍你多久?
  2. 开源改变了小米什么?
  3. 数据库乱象丛生,开发者该如何选择?
  4. SDK 可能是数百万 iPhone 上的特洛伊木马
  5. 字节跳动算法工程师总结:java资料文件
  6. 带你重新认识ZooKeeper!java数组合并去重
  7. c语言中声明外部函数需要添加的关键字,C语言中声明和定义的区别——分析extern关键词。...
  8. python正则表达式案例_Python正则表达式使用经典实例
  9. php cksql,金蝶KSQL规范
  10. java如何解析word大纲_Java POI 解析word文档