解决Springboot项目在idea中能正常使用,但打包后无法运行的情况

自己做一些活的时候偶然发现的bug:在springboot的web项目中,打包之前能正常的运行,包括测试类里面的代码也都是正常的没有报错。
这就是张图片而已(请忽略黑色的笔迹) 正常的启动main方法,就可以看见在target里并没有打包生成的jar文件(pom里面配置的是jar)。而且服务也正常启动了。
然后如果我们关掉服务,然后执行maven的clean和package的话
这还是一张图片
(请忽略黑色的笔迹) 先是执行了clean
这是另外一张图片
然后执行了package
之后神奇的事情发生了:
启动main方法:
阿这

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-03-12 14:12:48.946 ERROR 300 --- [           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).


Process finished with exit code 1

挺神奇的我觉得。
而且这个打包好的jar放在服务器上也会发生同样的错误

在网上也看到一个解决方法是
在这里插入图片描述
不勾选圈中的选项
但这个方法对我这种错误似乎没用 ,因为我取消勾选然后apply之后,重复上面的操作会自动给我勾上,挺神奇的。

然后我的解决方法便是:先在idea启动main方法,启动的时候不要关闭服务,也不要clean,直接打包

先是把前面的东西给全部clean掉:
在这里插入图片描述
clean掉了之后,启动main方法(没有打包出来的jar文件):
在这里插入图片描述
启动之后,不要关闭服务,也不要clean,直接package

在这里插入图片描述
可以看见打包好的jar已经出来了,同时application服务也没有关闭
接着我们再重启一下main方法
在这里插入图片描述
芜湖启动了。
而且这个jar文件也是能正常的部署到服务器上的,访问也能正常的去访问。

这个方法具体怎么实现的我也不太理解,只是单纯的记录一下我发现的操作而已,如果对你有帮助的话我会很高兴的。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐