- 问题
SpringBoot项目打包失败并且会运行一次项目
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource_app' threw exception; nested exception is java.lang.NullPointerException
Caused by: java.lang.NullPointerException
[INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] ApplicationTests.contextLoads » IllegalState Failed to load ApplicationC...
[INFO]
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO]
- 原因
这是我们使用maven对项目进行打包的时候,springboot都会对我们的测试类进行预测试,并且进行数据库的预连接,如果测试不通过或者数据库连接不上,那么就无法打包成功!
如果你启动类中写了配置文件的路径,启动类中写的是本地配置文件的路径那么项目能正常运行,如果打包时更改启动类中的配置文件路径,将路径更改为服务器类中的配置文件路径,这时项目在打包时所进行的单元测试就会检查不到配置文件,那么就会报这个错。所以就可以在pom.xml文件添加
<properties>
<java.version>1.8</java.version>
<!-- 不指定单元测试 -->
<skipTests>true</skipTests>
</properties>
clean项目在点击package打包即可。