前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven依赖管理大全

Maven依赖管理大全

作者头像
林老师带你学编程
发布2019-08-23 17:49:27
1.2K0
发布2019-08-23 17:49:27
举报
文章被收录于专栏:强仔仔强仔仔

大家都知道随着业务的进展,项目会变得越来越多,这个时候如果没有一个统一的依赖管理中心,就会有很多问题发生。

如果没有依赖管理中心,会发生哪些问题呢?

  1. 项目的依赖会有很多重复,一模一样的依赖可能要重复写多次,浪费时间。
  2. 如果没有一个公共的代码依赖项目,像很多工具类、pojo对象需要重复写多个,最可怕的是不同项目之间的相同工具类、pojo名称一样,但是里面的代码有可能不一样。
  3. 同一个依赖不同项目之间可能版本也会不一样,无法进行版本的统一管理和升级。
  4. install的时候需要每个项目一个个进行,无法进行统一的install操作,项目一多就非常浪费时间。

当然它的危害还不止这些,所以我们需要有一个统一的依赖管理维护中心,别担心Maven都给我们提供好了。

如果想研究Maven怎么进行依赖才更加合适的童鞋,可以下载SpringBoot源码项目,SpringBoot的依赖关系就做的特别好,这边我也是借鉴SpringBoot的依赖关系来进行项目依赖改造的。

那问题来了,我要怎么进行依赖统一管理呢?

因为项目可能不是在同一个目录下面,所以没办法用传统的最外层pom来管理每一个子项目的pom依赖。

这边我们可以这么来,新建一个project-parent项目,该项目没有实际的代码,只有一份pom.xml文件,这个pom.xml文件就是用来统一管理每一个项目的依赖,每个子项目都会继承这个project-parent项目的pom依赖。

project-parent项目类型的packaging必须是pom,否则子项目无法继承。

然后再创建一个公用的project-common项目,作为子项目公共代码依赖项目,子项目可以通过dependency进行公共代码依赖项目的依赖引进。

project-parent项目中放在dependencys中的dependenc依赖可以直接被子项目所继承,如果不想依赖被子项目继承,可以放在dependencyManagement中。

关系图如下所示:

image
image

有些人可能就会问,那parent和common有什么区别?这就等同于我们java的继承和接口的区别,parent必须继承,但是common可以选择实现。

pom文件关键字介绍:

  • pom文件中profiles可以用来定义各个环境所对应的配置文件,这样就可以解决不同环境,配置文件打包的问题了。
  • pom文件中build用来构建项目jar、war、source源文件之类。
  • pom文件中dependencies用来定义本项目的依赖关系,所有项目所需要的依赖都可以在这边配置。
  • pom文件中properties用来定义一些常量,在pom中的其它地方可以直接引用。
  • pom文件中repositories主要是依赖和扩展的远程仓库配置。
  • pom文件中distributionManagement是项目分发信息,在执行mvn deploy后表示要发布的位置。

具体pom文件关键字信息可以阅读下面这篇文章:https://www.jb51.net/article/129417.htm

规范约束:

  1. 禁止子项目脱离父项目进行单独的pom文件配置。
  2. 子项目依赖不要和project-common依赖冲突,否则很容易出现循环依赖。
  3. 子项目禁止出现依赖的version版本号,统一放在project-parent项目中管理。

总结:

每一个东西都需要管理,项目依赖也不例外。如果放任项目依赖的混乱,不进行统一的管理,那日后升级项目依赖的时候,那将是灾难级的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年08月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档