Springboot启动失败:Failed to instantiate [javax.sql.DataSource]。
最开始以为是DB版本后,需要升级驱动版本,但更新驱动版本还是不行,而且另外一个项目同样驱动同样配置可以启动。
后面发现代码读取不到yml文件中的配置信息。
最后通过回退代码最终找到有问题的配置,竟然是pom文件中maven-compiler-plugin配置被误删了部分代码如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<!-- 误删代码 -->
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
应该是项目启动时用到lombok的配置,影响到了DB连接程序。
其实我应该想到项目启动失败,不仅和DB配置有关,而且和pom配置也有关呀。
顺便提下,maven-compiler-plugin主要用来根据指定的jdk版本去编译源码生成class文件:

maven-compiler-plugin指定的默认jdk版本:

参考:https://www.cnblogs.com/east7/p/13363069.html
官网官网每个版本文档中有写springboot版本对应的jdk要求(以下链接改个版本可查):Spring Boot Reference Documentation

类似博客:
如何查看SpringBoot和JDK版本的对应关系_wx643fa5533cba9的技术博客_51CTO博客
Springboot end of support date:
文章讲述了在Springboot应用启动时遇到的失败问题,问题根源在于maven-compiler-plugin的配置缺失,特别是与lombok相关的annotationProcessorPaths。错误的配置导致了DB连接程序受到影响,修复这个问题后,应用成功启动。提醒开发者项目启动失败不仅与数据库配置有关,还可能涉及构建工具的配置。
3万+

被折叠的 条评论
为什么被折叠?



