Spring boot的Maven配置依赖

194 篇文章 3 订阅
7 篇文章 2 订阅

 

Spring boot 的 Maven 配置依赖 

 

 

我们通过引用spring-boot-starter-parent,添加spring-boot-starter-web

可以实现web项目的功能,当然不使用spring-boot-start-web,通过自己添加的依赖包也可以实现,但是需要一个个添加,费时费力,而且可能产生版本依赖冲突。我们来看下springboot的依赖配置:

利用pom的继承,一处声明,处处使用。在最顶级的spring-boot-dependencies中,使用dependencyManagement让所有子项目引用一个依赖而不用显式的列出版本号,将结构信息,部署信息,共同的依赖信息放置在统一的位置。dependencyManagement只声明依赖,并不真正引入,因此子项目需要通过dependencies引入相关依赖。

 

Spring-boot-dependencies组成

第三方依赖的版本号

插件的版本号

springboot的依赖包,固定版本的parent依赖固定版本包,如果升级只需修改parent的版本号,即可统一更换依赖。

第三方依赖,解决了第三方依赖版本不兼容的冲突,使用第三方依赖更加便捷

插件

 

Spring-boot-parent组成

添加额外的依赖,用户会使用的第三方依赖,但是spring-boot-dependencies中没有依赖

测试相关的依赖

以及其他插件及profile配置

 

Spring-boot-starter-parent组成

父级spring-boot-dependencies无需多说

依赖spring-core

在src/main/resources目录下,仅application.yml和application.properties是资源文件并需要进行过滤;在src/main/resources下除application.yml和application.properties外也是资源文件,但不需要过滤。过滤会将文件中${...}替换为系统属性或者项目属性值。

 

Sprint-boot-starter-* 组成

可以通过parent来统一管理,这也就是springboot的四大神器之一的starter所带来的便捷。根据不同的功能,添加不同的starter即可。在springboot源码包中我们可以看到spring-boot-starters中有50多个starter

图中根目录pom.xml为spring-boot-starters,使用maven的聚合模块,其他starter作为聚合模块的子目录存在,目的是一次构建多个项目模块,如下图:
通过models来管理所有的starter,可以一次性构建所有starter:

使用assembly插件,将一组文件、目录、依赖元素组装成一个归档文件,如下图:

使用该插件,executions执行器会执行mvn assembly:assembly,只运行一次,描述文件的路径为src/main/assembly/starter-poms-assembly.xml,我们来看下描述文件:

打包的文件格式为zip,模块文件为**/pom.xml,该插件执行完效果如下:
会在src同级目录下生成target文件夹并在其下生成:

zip文件中所有子starter文件的依赖

在源码根目录中与spring-boot-starters同级的目录中,spring-boot-deployment-tests,spring-boot-integration-tests,spring-boot-samples都使用了pom的聚合模块功能。包括spring-boot-1.5.1.RELEASE整个项目也是使用聚合模块功能。可以使用mvnw对项目进行统一构建。

总结:
spring-boot的maven配置大概如上所述,使用到了

  • a.pom继承:一处声明,处处使用
  • b.pom聚合:一次构建多个项目模块
  • c.其他插件,各种配置

能让我们在对spring-boot实现有认识的同时,加深对maven配置的理解。

 

结束语:JAVA是世界上最美的语言,没有之一; 抽丝剥茧般拨开你神秘的面纱!

 

转载来源:https://segmentfault.com/a/1190000010757682

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值