You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

本地运行Maven Spring Boot应用报错:spring-boot-maven-plugin执行失败

解决Spring Boot Maven Plugin启动报错(构建成功但启动失败)

你这情况应该是Spring Boot Maven插件启动时触发了空指针相关的隐性错误——虽然构建环节顺利走完,但启动阶段掉链子了。结合你贴的pom.xml,我整理了几个实用的排查和解决方向:

1. 先搞定Spring Boot插件的版本兼容性

你的Spring Boot Maven插件没指定版本,默认继承父项目的0.0.1-SNAPSHOT,但你用的Spring Cloud依赖都是1.3.x/1.4.x版本,对应的Spring Boot版本应该是1.5.x系列,而报错里显示插件版本是1.3.8.RELEASE,版本不匹配很容易出问题。

建议直接给插件指定和Spring Cloud兼容的版本:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.5.22.RELEASE</version> <!-- 这个版本和你用的Spring Cloud 1.3/1.4系列匹配 -->
</plugin>

2. 排查Vaadin构建步骤的冲突

你在pom.xml里配置了Vaadin插件的update-widgetsetcompile等一堆目标,这些步骤在mvn spring-boot:run时可能和Spring Boot的启动流程冲突,甚至Vaadin的编译环节有隐性错误,但构建阶段没暴露出来。

先单独跑一遍Vaadin的构建命令,确认没问题:

mvn vaadin:update-widgetset vaadin:compile vaadin:update-theme vaadin:compile-theme

如果这一步报错,先把Vaadin的widgetset或主题问题修好,再启动应用。

3. 确认启动类没问题

你的启动类是com.iodine.imc.ui.Application,得确保它是标准的Spring Boot启动类,带@SpringBootApplication注解,而且能正常扫描到项目里的配置和Bean:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4. 扒出更详细的错误日志

默认的错误提示只有个null,完全没法定位问题。你可以加参数打印详细日志:

mvn spring-boot:run -Dlogging.level.root=DEBUG

或者给Spring Boot插件加调试配置,用调试器抓堆栈:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</jvmArguments>
    </configuration>
</plugin>

然后用IDE连接5005端口调试,就能看到具体哪里出问题了。

5. 清理Maven缓存再重来

有时候Maven的依赖缓存会搞出奇怪的问题,先清掉缓存重新构建:

mvn clean install -U

然后再跑mvn spring-boot:run试试。


内容的提问来源于stack exchange,提问作者Ciby

火山引擎 最新活动