开发项目依赖管理

文章讲述了在多项目开发中面临依赖管理问题,作者提出参考SpringBoot的依赖管理方式,创建父项目和依赖项目,结合IDEA编辑器的功能,提高开发效率。通过设置父项目管理依赖版本,依赖项目提供常用依赖索引,以及利用IDEA自动修改pom.xml,解决了依赖下载和版本冲突的问题。同时注意了依赖范围和冲突的处理,以及使用mavenprofile适应不同环境的需求。
摘要由CSDN通过智能技术生成

经常需要创建新的项目或者在好几个项目之间进行模块开发,而依赖虽然可以使用maven进行管理,但每个新项目pom.xml的处理都要花费不少的时间,开发的时候习惯使用一些依赖,写着写着发现没有该依赖,就需要去pom.xml中去添加该依赖,这会打断开发的流畅度,而且部分没有的依赖下载还需要时间,需要暂停开发等待下载,而且部分依赖还需要熟悉新的版本的规则,对开发很不友好。

我就想参考SpringBoot框架的依赖管理方式,将自己所用过的依赖全部放到一个依赖管理项目中,然后其他项目在开发的时候只需要添加这个依赖管理项目,就可以一次性导入所有依赖,一次性下载添加所有依赖,加快开发的速度,所有导入这个依赖的项目都不需要关注依赖的版本问题,方便开发者撰写代码。所有的依赖放在同一个依赖管理模块中,不必要的就会出现依赖冲突,在这种情况下,我采取了两种方式进行结合使用。

SpringBoot框架中提供了两种方式导入依赖:spring-boot-starter-parentspring-boot-dependenciesspring-boot-starter-parentspring-boot-dependencies均采用packagingpom方式,进行依赖管理,spring-boot-starter-parent导入了spring-boot-dependencies依赖,本质上起作用的是spring-boot-dependencies这个依赖。但这种方式仍然不方便我的日常开发,packagingpom方式进行依赖管理只是进行了依赖版本的管理,但等待下载这个问题仍然没有解决,很多时候使用到某个依赖时才发现某个依赖没有写入pom.xml或者下载,就需要等待。

但结合IDEA编辑器的特性,IDEA编辑器会主动为导入依赖制定索引,即使后面这个依赖删除了,仍然会提示你导入某个依赖,然后自动修改pom.xml文件。那我们可以写一个packagingjar的依赖项目,在初次使用创建项目的时候导入这个依赖,IDEA编辑器下载并为这个packagingjar的依赖项目中的所有依赖指定索引,结束后再将这个依赖注释掉,这样在开发的过程中,就可以根据IDEA编辑器提示导入依赖,自动修改pom.xml文件。注意这个packagingjar的依赖项目不建议添加过多的依赖,会降低IDEA编辑器运行的效率,添加比较常用的依赖即可。

结论,我们可以准备两个项目,parent项目和dependencies项目,开发者可以在pom.xml中的<parent>标签中导入parent项目,也可以在项目的<dependencyManagement>标签中导入parent项目作为项目的依赖版本管理,然后在<dependencies>标签中导入dependencies项目,然后使用IDEA编辑器maven刷新,下载并导入常用的依赖,完成后将dependencies项目注释掉,避免项目的依赖项目过于庞大,这样写代码的过程中遇到依赖不存在的情况使用IDEA编辑器提供的提示,导入依赖,自动更新pom.xml,依赖版本受parent项目管理。

注意:我们需要注意依赖的适用范围和依赖冲突这两个问题,依赖的使用范围由<scope>标签进行声明,只有compile(默认)和runtime的依赖才可以被继承,如果dependencies项目某个依赖设置为test,那么即使导入了dependencies项目,IDEA编辑器也不会导入该依赖,写代码遇到时仍然需要手动修改pom.xml文件,等待依赖导入。比如spring-boot-starter-test就是test范围的,那我们可以在parent项目中声明spring-boot-starter-test的范围是test,但dependencies项目声明spring-boot-starter-test范围为compile(默认)。依赖冲突可以parent项目在使用<exclusions>标签进行处理,将发生冲突的模块进行排除,可以根据个人习惯保证parent项目的依赖不会冲突。

不过这种方式只适用于开发和测试,可以使用mavenprofile功能,根据我们在开发中使用的依赖选择生成环境的依赖。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱睡觉的小男孩zzz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值