Spring Boot 1.5+Gradle构建Jar缺依赖,致SpringApplicationBuilder类找不到
解决Spring Boot 1.5 Gradle构建Jar缺少依赖的问题
你的问题核心原因是Spring Boot 1.5.x版本的Gradle插件对implementation依赖配置的兼容性不足,导致构建出来的可执行Jar没有将依赖包打包到BOOT-INF/lib目录下,最终启动时抛出ClassNotFoundException。
具体解决方案:
替换依赖配置关键字
Spring Boot 1.5.x版本的Gradle插件默认只识别compile配置的依赖并将其打包到可执行Jar中,把build.gradle里的implementation全部替换为compile:dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-starter-jdbc') compile('org.springframework.boot:spring-boot-starter-data-jpa') // 其他依赖保持原有配置即可 }清理并重新构建
执行命令清理旧构建产物,重新生成包含完整依赖的Jar:./gradlew clean build验证Jar内容
解压生成的Jar文件,检查BOOT-INF/lib目录,确认里面已经包含所有需要的依赖包(比如spring-boot-1.5.22.RELEASE.jar等核心依赖)。测试Jar启动
再次使用java -jar命令启动Jar,确认异常是否消除:java -jar build/libs/your-app-filename.jar
补充说明:
implementation是Gradle 3.4及以上版本引入的新依赖配置项,但Spring Boot 1.5.x的插件(对应版本1.5.22.RELEASE)并未适配该配置的打包逻辑,因此依赖不会被自动加入到可执行Jar的依赖目录中。如果一定要使用implementation,需要手动配置bootJar任务来强制包含这些依赖,但直接替换为compile是最简便可靠的方案。
内容的提问来源于stack exchange,提问作者Markus Pscheidt
相关产品推荐
相关产品推荐

