问题描述:
一、不小心将启动类下的文件删除了,当再次恢复后,启动时报错如下
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2019-05-06 21:27:18.275 ERROR 10968 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active)
碰到这个问题,首先想到的是数据库配置是不是有问题,查看application.properties文件配置正常
因为当时只修改了依赖和工程目录,所以猜想可能是引入了不必要的pom依赖,于是删除了DataSource相关的依赖
问题依旧存在
二、这时又想到可能是配置文件没有生效,于是将application.properties文件中的内容全部注释掉,再次启动发现还是同样的问题,从而将问题定位到了application.properties文件没有生效
于是又去查找此文件不生效的原因
大致原因有以下几种:
1、在pom中添加配置
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
2、将packaging中的pom修改为jar
<packaging>jar</packaging>
尝试完上面两种方法后,问题依旧存在
于是重新整理思路,想想自己改了什么东西,想起来做了工程的复制和删除操作,于是又想到是不是启动类需要手动配置一下
于是修改启动类,重新启动,好了,这里出现了更严重的问题
三、IDEA中SpringBoot启动错误无法加载主类
至此,已经由一个问题引发了3个问题,深感乏力,对于工程目录还是最好不要动
那么抛开其他问题,来解决无法加载主类的问题
查了一下无法加载主类主要有以下原因:
1、所需类没有编译或者通过maven运行了clean
mvn clean compile,将项目重新编译 mvn install,打包 mvn spring-boot:run,启动项目
问题依旧没有解决
后来偶然发现了一个博客
找到了解决问题的方法
重点来了:
项目里面.idea文件 删除
重启idea
mvn claean install
做了上述操作后,发现问题终于解决了,上面的所有问题都没有了,项目启动正常
四、总结
以上所有的问题都是由于自己修改了工程目录引起的
引发了一系列的问题,所以涉及工程目录的时候,不要轻易更改
对于问题的解决,一定是层层递进,有几个排查的方向,针对每种猜想,去找博客查看解决思路,然后在理解博客解决思路的前提下,去尝试解决问题
将答案一个个排除,避免在同一种方法上浪费过多的时间