好问题。
我们希望在
mvn spring-boot:runIDE和运行您的应用之间没有区别。两者都使用项目的类路径启动主类。强烈建议您在使用应用程序时使用后者:如果从IDE运行应用程序,则将获得所有不错的功能,例如调试和devtools。当您需要在命令行上运行应用程序的标准方法时,可以使用前者。Maven插件还可以在集成测试阶段之前启动您的应用程序(请参阅
startMaven
/ Gradle插件的目标)。如果使用该构建来过滤某些资源,则IDE应该注意,否则从IDE启动应用程序时,可能不会过滤某些数据。
java -jar yourapp.jar在最终工件上运行。Spring
Boot负责构建应用程序的类路径。过滤的资源存储在jar中。但最后,它的意思是做完全相同的事情。
现在您的问题已经解决
war了。您不能期望常规
war回调适用于作为主类运行的对象。话虽如此,Spring
Boot尽其所能为您提供所有工具以使其保持一致。
war从运行中的servlet容器启动的A
不会从main方法初始化,而是从servlet初始化程序初始化。但是,您可以共享初始化代码,以便保持一致。插件的运行目标将添加,
src/main/webapp以便这些文件也被提供。
TL; DR如果您要在所有环境中寻找一致的故事,请不要使用战争包装。



