第六章:插件

6.1 迁移 Spring Boot 项目只需这几个插件

plugins{id'java'// 提供 compileJava、test 等id'war'// 提供 war 任务(WAR 项目加)id'org.springframework.boot'version'2.0.5.RELEASE'// 提供 bootRun、bootWarid'io.spring.dependency-management'version'1.0.15.RELEASE'// 对接 Spring Boot BOM}

这四个插件,替代了 Maven 的:

  • <parent>spring-boot-starter-parent</parent>
  • <packaging>war</packaging>
  • <plugin>spring-boot-maven-plugin</plugin>

6.2 插件给你带来什么

java 插件

提供基础构建任务:compileJavatestjarbuildclean等。

war 插件

额外提供war任务,以及providedRuntimeprovidedCompile这两个 scope。

org.springframework.boot 插件

提供:

  • bootRun:直接运行 Spring Boot 应用(等效mvn spring-boot:run
  • bootJar/bootWar:打可执行的胖包(内含嵌入式 Tomcat)
  • bootBuildImage:构建 Docker 镜像(不常用,简单提一下)

io.spring.dependency-management 插件

让 Spring Boot BOM 生效,Spring Boot 管理的依赖不用写版本号。这个插件必须和 spring-boot 插件一起用。


6.3 常用配置

// 修改 WAR 包文件名(等效 <finalName>)bootWar{archiveFileName='live.war'}// bootRun 带 profile 启动bootRun{args=['--spring.profiles.active=dev']}// 指定主类(通常 Gradle 自动检测,检测不到时手动写)springBoot{mainClass='com.own.LiveApplication'}

6.4 Maven 插件对应关系(快速查)

Maven 插件Gradle 等效
maven-compiler-plugin内置java插件,配置compileJava { options.encoding='UTF-8' }
maven-war-plugin内置war插件
spring-boot-maven-pluginorg.springframework.boot插件
maven-surefire-plugin内置,配置test { }
jacoco-maven-plugin内置jacoco插件

6.5 ⚠️ 坑:war 和 bootWar 的区别

war → 普通 WAR,不含嵌入式 Tomcat,部署到外部 Tomcat bootWar → 可执行 WAR,内含嵌入式 Tomcat,可以 java -jar 直接运行 (同时也支持部署到外部 Tomcat,两者兼容)

Spring Boot 项目直接用bootWar就对了。

➡️ 下一章:日常构建命令