STS Boot Dashboard启动Spring Boot多模块项目失败的问题求助
解决STS Boot Dashboard启动找不到Mapstruct生成Bean的问题
问题核心
多模块Maven项目中,iaas-cockpit-backend依赖iaas-cockpit-core-lib,使用STS 4.23.1通过Boot Dashboard启动时找不到Mapstruct生成的UserMapper Bean,但mvn spring-boot:run可正常启动;执行Maven >> Update Project...后,target/classes中的Mapstruct实现类消失,即使开启JDT APT配置也无效。
解决方案
1. 修正core-lib模块的Mapstruct Maven配置
在iaas-cockpit-core-lib的pom.xml中,必须正确配置注解处理器路径,确保Maven编译阶段能生成Mapstruct实现类:
<dependencies> <!-- Mapstruct核心依赖 --> <dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct</artifactId> <version>1.5.5.Final</version> <!-- 替换为你的实际Mapstruct版本 --> </dependency> <!-- 若使用Lombok,添加以下依赖 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <!-- 替换为你的实际Lombok版本 --> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <!-- 匹配你的项目JDK版本 --> <target>17</target> <annotationProcessorPaths> <!-- Mapstruct注解处理器 --> <path> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-processor</artifactId> <version>1.5.5.Final</version> <!-- 与核心依赖版本保持一致 --> </path> <!-- Lombok注解处理器(若使用Lombok) --> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> </path> <!-- Lombok与Mapstruct绑定插件(可选但推荐) --> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok-mapstruct-binding</artifactId> <version>0.2.0</version> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build>
2. 调整STS的注解处理配置
STS默认的JDT APT无法正确识别Maven配置的注解处理器,需切换为使用Maven原生注解处理:
- 打开
Window > Preferences > Maven > Annotation Processing - 勾选
Enable annotation processing in Maven projects - 取消勾选
Use JDT APT - 点击
Apply and Close
3. 将生成的源码目录加入项目类路径
确保STS能识别Mapstruct生成的代码目录:
- 右键
iaas-cockpit-core-lib模块 >Properties > Java Build Path > Source - 点击
Add Folder,找到target/generated-sources/annotations目录并勾选 - 确认该目录的
Output folder设置为target/classes(默认已配置,若未设置需手动调整)
4. 强制重新构建项目
- 先在
iaas-cockpit-core-lib模块根目录执行命令:mvn clean compile - 在STS中右键根项目 >
Run As > Maven Clean,再执行Run As > Maven Compile - 最后右键根项目 >
Maven > Update Project...,勾选Force Update of Snapshots/Releases,点击确定
5. 检查Boot Dashboard启动配置
- 打开Boot Dashboard,找到
iaas-cockpit-backend应用,右键 >Edit Configuration - 确认
Classpath选项卡中使用的是Maven依赖(而非自定义类路径) - 确保
Working directory设置为iaas-cockpit-backend模块的根目录
内容的提问来源于stack exchange,提问作者kalif_kay
相关产品推荐
相关产品推荐

