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: