Spring Boot 3 Native编译报错:找不到SpringApplicationAotProcessor类
解决
org.springframework.boot.SpringApplicationAotProcessor找不到的问题 这个错误核心是缺少Spring Boot AOT核心依赖,再加上你没继承Spring Boot官方父POM,很多自动配置的插件绑定、依赖管理都没生效,得手动补全这些配置:
1. 手动引入Spring Boot AOT依赖
把下面的依赖加到你的POM里,SpringApplicationAotProcessor就位于这个包中:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-aot</artifactId> <scope>provided</scope> </dependency>
2. 配置Spring Boot Maven插件的AOT处理
因为使用公司内部父POM,Spring Boot插件不会自动执行AOT代码生成,所以要手动配置spring-boot-maven-plugin,添加process-aot目标,确保它在编译前生成AOT所需代码:
<build> <plugins> <!-- 先配置Spring Boot插件,处理AOT代码生成 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.0.6</version> <!-- 必须和你的Spring Boot版本完全一致 --> <executions> <execution> <id>process-aot</id> <goals> <goal>process-aot</goal> </goals> </execution> </executions> </plugin> <!-- 再配置GraalVM原生编译插件 --> <plugin> <groupId>org.graalvm.buildtools</groupId> <artifactId>native-maven-plugin</artifactId> <version>0.9.20</version> <!-- 与Spring Boot 3.0.x兼容的版本 --> <executions> <execution> <id>add-reachability-metadata</id> <goals> <goal>add-reachability-metadata</goal> </goals> </execution> <execution> <id>native-compile</id> <goals> <goal>compile</goal> </goals> <phase>package</phase> </execution> </executions> <configuration> <!-- 填入你的应用主类全路径 --> <mainClass>com.yourcompany.yourapp.Application</mainClass> </configuration> </plugin> </plugins> </build>
3. 调整构建命令
不要直接执行mvn clean native:compile -e,改用完整生命周期命令,确保AOT代码生成步骤先执行:
mvn clean package -Pnative
(如果未配置native profile,直接执行mvn clean package即可,插件已绑定到package阶段)
额外排查点
- 确保
spring-boot-aot版本与Spring Boot版本完全一致(此处为3.0.6),版本不匹配会导致类加载异常 - GraalVM Build Tools版本(即
native-maven-plugin版本)要和Spring Boot版本兼容:Spring Boot 3.0.x对应0.9.x系列,3.1.x对应0.10.x系列,不要随意选版本 - 确认主类全路径配置正确,原生编译插件需要明确知道应用入口类
内容的提问来源于stack exchange,提问作者Patryk Be
相关产品推荐
相关产品推荐

