工具篇主要是讲 Spring Boot CLI 和构建工具 maven, gradle 这些。

构建工具

在 maven 和 gradle 中,查看依赖包的方法为:

  1. $ gradle dependencies
  2. $ mvn dependency:tree

命令详情

使用 spring boot 插件来启动 spring boot 项目

  1. $ gradle bootRun
  2. $ mvn spring-boot:run

构建项目

  1. $ gradle build
  2. $ mvn package

构建成功后,会将打好的 jar 包存放在指定目录。
gradle 放在 ../build/libs
maven 放在 ../target

去掉指定依赖

另外在这类构建工具中,可以覆盖 起步依赖 引入的传递依赖:
比如,将 web starter 中的 jackson 去掉:
gradle

  1. implementation('org.springframework.boot:spring-boot-starter-web') { <- 注意加上括号
  2. exclude group: 'com.fasterxml.jackson.core'
  3. }

maven

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <groupId>com.fasterxml.jackson.core</groupId>
  7. </exclusion>
  8. </exclusions>
  9. </dependency>

另一方面,如果想指定特定的版本,比如 使用 2.3.4 版本的 jackson,在构建工具中也可以实现。
在 Maven 中,只需要加入 jackson 的版本号就行了。因为 Maven 总是会使用最近的依赖:

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-databind</artifactId>
  4. <version>2.4.3</version>
  5. </dependency>

但是在 Gradle 中不一样。因为 Gradle 倾向于使用库的最新版本。所以想要使用老版本的 jackson,必须先去掉新版本才行:

  1. implementation('org.springframework.boot:spring-boot-starter-web') { <- 注意加上括号
  2. exclude group: 'com.fasterxml.jackson.core'
  3. }
  4. implementation 'com.fasterxml.jackson.core:2.3.1'