Spring Boot教程(4) – 依赖管理

栏目: Java · 发布时间: 6年前

内容简介:不管你熟悉不熟悉Gradle,build.gradle文件中的内容都是要去重新认识的。上图是一个典型的,刚刚生成的build.gradle文件,添加了个Guava依赖。说到这儿,又要牵扯出很多东西了,容我深吸一口气。

不管你熟悉不熟悉Gradle,build.gradle文件中的内容都是要去重新认识的。

Spring Boot教程(4) – 依赖管理

上图是一个典型的,刚刚生成的build.gradle文件,添加了个Guava依赖。 repositories{ mavenCentral() } 这段代码表示我们的依赖都是从中央仓库下载的。 比如这个Guava库,implementation后面跟上库的坐标就可以引入 ,之前我们说过,坐标由 groupId:artifactId:version 组成。奇怪的是,上面列出的第一个依赖,却没有版本号。因为这个版本号是由一个插件管着的,插件叫做 io.spring.dependency-management。

说到这儿,又要牵扯出很多东西了,容我深吸一口气。

什么是Starter?

Spring Boot的特点就是简化了依赖,一旦引入,就可以按照默认的方式配置好。这个时候,Spring Boot引入了“Starter”的概念,一个Starter其实可以代表一个功能,引入一个Stater,就表示引入了某个功能,实现这个功能所需要的依赖,都会被引入并且配置好。比方说图中,我们引入了Web Starter(Artifact ID是spring-boot-starter-web),它提供了web开发的功能,web开发功能需要很多依赖来完成,如图:

Spring Boot教程(4) – 依赖管理
IntelliJ IDEA的Gradle工具栏可以查看项目的所有依赖

可以看出,Web Stater使用了Spring MVC来处理请求,用Jackson做JSON处理,用Tomcat作为内置服务器,你搞Web开发肯定离不开这些东西吧,Web Starter直接给你弄好了。只需要添加一行Web Starter的依赖就行。类似的Starter 还有几十个 。Starter可以是官方实现的,也可以是开源库自己实现的,也可以团队里成员自己开发的。

哪些依赖的版本可以省略?

官方维护了一个 列表 ,里面列出了可以省略版本号的依赖,包括官方实现的Starter和一些常用的第三方库。对于每一个Spring Boot版本,都有这样一个列表。比方说你把Spring Boot的版本从2.1.4升级到2.1.5,那么列表中的依赖会跟着变。

如果你对于这种自动维护的版本号,感觉心里不踏实,还是有办法改的:

Spring Boot教程(4) – 依赖管理

对于Spring Boot 2.1.5来说,Web Starter自带了Jackson,版本是2.9.8。如果你这时候想使用2.9.9的某个特性,通过上图的代码就可以做到。

注意,每个Spring Boot版本,都针对其列表里的第三方库有过测试,改了版本号有可能不兼容。版本可以改,使用要谨慎。

build.gradle用了哪些插件?

除了上面提到的 io.spring.dependency-management,build.gradle中还引入了 java 插件和org.springframework.boot插件,前者是用来搞纯java开发的,后者是用来执行Spring Boot相关任务的,我们熟悉的bootRun和bootJar任务都是从这个插件来的。

都是插件,引入的方式竟然还不同,java和org.springframework.boot是通过 plugins{ id ...} 的形式引入的,io.spring.dependency-management却是通过 apply plugin: ... 的方式引入。前者更新一点,后者更老更灵活一点,两种形式的差别可以在 Gradle文档 中找到。反正我是没搞明白为什么生成的build.gradle要这样写,我把所有插件都放到 plugins{ id ...} 中,也能运行。有懂行的可以留个言给大家解个惑。

Spring Boot教程(4) – 依赖管理
这样也行

其他一些技巧

  • 如果你需要引入一个新的Starter或者第三方库,建议去Spring Initializr看看上面的依赖有没有你需要的。有的话创建一个新项目下载下来,把它的build.gradle中新增的东西拷贝进来。因为增加一个依赖不仅仅是加一句 implementation '...' ,可能还有其他区别。
  • 如果你真的对中央仓库中的库的依赖关系比较好奇,建议到 https://mvnrepository.com/ 上看一看,逛一逛。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Masterminds of Programming

Masterminds of Programming

Federico Biancuzzi、Chromatic / O'Reilly Media / 2009-03-27 / USD 39.99

Description Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. Think along with Adin D. Falkoff (APL), Jame......一起来看看 《Masterminds of Programming》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具