如何在Gradle打包普通war时排除developmentOnly类spring-boot-devtools依赖
根因
Spring Boot Gradle 插件的 developmentOnly 依赖自动排除规则,仅作用于插件自带的 bootJar、bootWar 打包任务,Gradle 原生的 war 任务不会默认识别该规则,因此打包普通war包时会携带 developmentOnly 声明的依赖。
解决方案
直接给原生 war 任务添加排除 developmentOnly 依赖的配置即可:
Groovy DSL 配置(对应 build.gradle 文件)
war { classpath = classpath.minus(configurations.developmentOnly) }
Kotlin DSL 配置(对应 build.gradle.kts 文件)
tasks.war { classpath = classpath.minus(configurations.developmentOnly.get()) }
生效验证
重新执行 war 任务打包后,解压生成的war包,检查 WEB-INF/lib 目录下不存在 spring-boot-devtools 开头的jar包即为配置生效。该配置不会影响bootWar任务的原有逻辑,同时打可执行war和普通war的场景也可正常使用。
内容的提问来源于stack exchange,提问作者LameDuck31
相关产品推荐
相关产品推荐

