企业级开发(如何统一springboot版本)

1.1 为什么要统一springboot版本

        想必做过微服务的同学都遇到过一个很难受的问题,就引用别的部门提供的sdk经常遇到jar包和当前项目冲突问题,解决办法无非就是找出别人提供的sdk中和本项目冲突的jar,然后排除它,这样就能解决,如下图:

但是大家有没有想过,如果别的部门提供的jar的springboot版本如果和我们当前项目引用的springboot版本一样,是不是就不会引起jar冲突呢。

        那么第二个问题来了,每个部门使用的springboot版本都不一样,那怎么才能做到统一呢,而且使用的公共的common版本每个部门也都不一样,每个版本的common里使用的springboot的版本也有可能不一样。如何做呢?

1.2 如何去做(定制公司dependencies)

        看过springboot源码的人就知道,我们通过springboot的任意一个maven依赖,一直跟到顶层,发现springboot和springcloud在定制版本的时候,都有一个dependencies来做最上层的版本控制,那我们可以仿照它来做一个公司级别的dependencies,来控制springboot,springcloud,数据库驱动,别的一些第三方的jar的版本。这样以来,公司所有的项目只需要依赖最上层的pom,所有的jar的版本都在最上层来制定,就不会从在版本不一致的问题了,接下来我们就来看看具体的实现。    

        由于篇幅原因,我这里直接给我github的地址,大家直接去看代码,注释很详细 

       github地址

         到这里,基本的jar依赖冲突问题可以解决了,但是,我们可以做的更优雅一点,为什么这么说呢,企业级开发,有一些核心的common包是不停的需要需改的,修改之后要去升版本,这势必要动dependencies,如果改了dependencies依赖的一些第三方的jar,就会造成整个公司使用jar出现问题。为了不把这个最上层的pom暴露给开发,我们需要引入一个中间parent pom,仔细去看springboot版本依赖,他也是这么做的。接下来,我们可以公司的核心jar,比如common,utils,redis等等放到parent中,如果需要升版本只需要动这个就好了。

        再者就是在parent中可以去管理构建jar的方式,接下来我们看看怎么做。代码已经上传github

       github地址 

        parent pom 现在已经完成,那我们怎么使用呢,这个简单,上代码:


        我们会发现,我们不再需要关心jar的版本,需要什么只需要引入jar就可以。

1.3 带来的好处

        到此,我们已经搭建起来一个公司统一的dependencies和parent,也学会了如何去使用,那么我们做这些会给我们带来什么便利和好处呢,我们接下来在项目中去体会,后续的项目中我会详细的带大家去亲身体会。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解S...
    dwwl阅读 5,462评论 4 81
  • 闺中寂寞眉凝愁 懒施云黛 轻衣上小楼 木叶萧萧云漠漠 枯树寒鸦天尽头 归来调琴净素手 一怀愁绪 黯然泪双流 纵使弦...
    我刀划破长空阅读 203评论 0 1
  • 有些人很快,有些人很慢,但不是所有快的人,最后真的是很快,也不是所有慢的人,最后真的是很慢。 一 同样的里程,同样...
    矫情的小石头阅读 396评论 2 3
  • 《流浪地球》火了 太阳追逐看了又看 ,激动地泪花 一天又一天 湿了枯树 绿了江河 润了土地 太阳去哪儿了 春雷...
    如果没有温暖阅读 1,339评论 13 70
  • 践行时间:20190211——20190217 本周践行: 勤奋:不耽误任何时间,总是在干有用的事情,终止不必要的...
    荷语微光阅读 276评论 0 1