java - Spring Boot Maven 插件缺少堆栈跟踪

标签 java spring-boot spring-boot-maven-plugin

我最近将代码库从 Spring Boot 1.2.7 更新到了 v2.0.0。在大多数情况下,这是成功的,但我注意到功能上出现了不希望的变化,其中当启动期间发生故障时,堆栈跟踪会丢失。我不确定我是否遗漏了某些内容(这是故意的),或者这两个版本之间是否引入了错误。

该项目使用 Spring Boot Maven 插件。当包含 JVM 参数时,如果应用程序无法启动(可能是由于 Spring 连接不正确、端口已在使用等),则不会记录堆栈跟踪来解释应用程序无法启动的原因。如果省略 JVM 参数,堆栈跟踪将包含在日志中。升级之前,使用 JVM 参数时会包含堆栈跟踪。

由于插件在包含 JVM 参数时 fork JVM,并且应用程序不会以其他方式 fork JVM,我想知道它是否与此有关。

最佳答案

为了帮助解决这个问题,我开始整合 POM 的精简版本以及“主”类。虽然该项目使用 Logback 进行日志记录,但在创建简化版本的过程中,我发现 Log4J 是通过其他几个库传递包含的。当我从类路径中删除 Log4J 依赖项时,启动期间的日志记录按预期工作。

在项目中包含 Log4J 早于 Spring Boot 版本的升级。所以,这里肯定有一个缺失的部分,因为我不知道是什么改变导致了破损。然而,前进的道路似乎很明确,因为 Log4J 不应包含在该项目中。我很乐意接受任何其他答案,并提供有关可能发生变化导致不同行为的更多信息,但如果没有,我将认为此问题已解决。

关于java - Spring Boot Maven 插件缺少堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49576206/

相关文章:

java - 另一个 "cannot find symbol"

java - 在java递归中返回变量的更新值

spring-boot - 在 Spring Boot 2.0 中使用 @Value 访问 buildInfo

java - JPA 示例 Spring Boot 应用程序抛出 BeanCreationException

java - Maven 对原始 Spring Boot JAR 的依赖

java - 从 setOnAction 启动电子邮件客户端

java - 以编程方式选择 SmartGWT 树状网格中的节点

java - Spring Boot 2.2.0 不推荐使用syncBody

maven - 如何解决异常 : basedir doesnot exist

java - Spring Boot Multi-Module maven项目重新打包失败