news 2026/9/30 4:00:48

Spring Boot多模块项目中程序可运行但mvn install 时找不到类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot多模块项目中程序可运行但mvn install 时找不到类

问题描述

A模块引用了B模块

@ComponentScan( basePackages = {"com.moduleA", "com.moduleB", com.moduleB.util"}, excludeFilters = { @ComponentScan.Filter(type = FilterType.CUSTOM, classes = {A.class}) } )
mvn install [ERROR] A.class不存在

常见原因分析

模块依赖未正确定义
父模块的pom.xml未正确声明子模块,或子模块间未通过<dependencies>正确引用。

构建顺序问题
Maven/Gradle未按依赖顺序编译模块,导致被依赖模块未优先编译。

类路径扫描失效
Spring Boot的组件扫描未包含依赖模块的包路径,导致@Component等注解未被识别。

编译时类不可用

@ComponentScan 的 excludeFilters 使用 FilterType.ASSIGNABLE_TYPE 直接引用类,但这些类在编译时可能不可用(即使已声明依赖),导致编译失败

解决方案

解决方案

  1. 创建自定义过滤器 ClassNameExcludeFilter:通过字符串类名匹配需要排除的类,避免编译时类引用。
  1. 修改 Application上面的注解:使用 FilterType.CUSTOM 和自定义过滤器。
public class ClassNameExcludeFilter implements TypeFilter { private static final Set<String> EXCLUDED_CLASS_NAMES = new HashSet<>(Arrays.asList( "*" )); @Override public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) { String className = metadataReader.getClassMetadata().getClassName(); return EXCLUDED_CLASS_NAMES.contains(className); } }

检查打包结果
确认依赖模块生成的jar包含编译后的类和资源文件。可通过解压jar或检查target/classes目录验证。

高级调试技巧

  • 使用mvn dependency:tree分析依赖树,排除冲突或缺失。
  • 在IDE中检查模块的类路径是否包含依赖模块的输出目录(如target/classes)。
  • 对于Gradle,启用--debug日志查看详细构建过程。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 8:22:00

centos7 磁盘I/O性能

磁盘I/O性能&#xff08;核心指标&#xff09;​需安装 sysstat工具包&#xff08;含 iostat、sar等&#xff09;&#xff0c;若未安装先执行&#xff1a;yum install -y sysstat # CentOS/RHEL&#xff08;1&#xff09;iostat -x 1&#xff1a;实时监控磁盘I/O&#xff08;推…

作者头像 李华
网站建设 2026/9/29 21:06:14

springboot+jspm海关通关辅助管理系统_aw930v86

目录 已开发项目效果实现截图开发技术介绍系统开发工具&#xff1a; 核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式…

作者头像 李华
网站建设 2026/9/30 8:21:53

直接上干货吧,搞过工控的都懂这种现场调试的酸爽。今天聊个真实案例——用三菱FX3U的485BD板子调台达VFD-M变频器,从接线到通讯协议全流程拆解

三菱FX3U与台达VFD-M两台变频器485BD板通讯案例&#xff0c;有教学&#xff0c;有注释&#xff0c;三菱Fx3U485-BD板.有频率设定&#xff0c;电流输出&#xff0c;正转反转停止&#xff0c;运行状态。先看硬件接线&#xff0c;485通讯线不是随便拧的。BD板的SDA接变频器S&#…

作者头像 李华
网站建设 2026/9/30 9:01:49

大厂射频芯片CC2500反向电路探索

大厂射频芯片CC2500反向电路 学习方法是&#xff1a;可以直接查看里面的电路结构&#xff0c;还有管子的宽长比参数等。 拿到原理图之后需要自己换成自己所持有的PDK就可以跑仿真了&#xff0c;国内大部分公司都是这样设计芯片产品的&#xff0c;参考价值非常大&#xff0c;整个…

作者头像 李华