news 2026/4/18 13:22:47

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/4/18 1:34:13

langchain agent动态变更系统prompt

一.背景 LangChain Agent 作为大语言模型&#xff08;LLM&#xff09;驱动的智能体核心&#xff0c;** 系统 Prompt&#xff08;提示词&#xff09;** 是其行为准则与决策逻辑的 “顶层设计”—— 它定义了 Agent 的角色定位&#xff08;如 “智能客服”“数据分析师”&#xf…

作者头像 李华
网站建设 2026/4/18 3:35:32

springboot+jspm电力监测报修服务平台_34gate3m

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

作者头像 李华
网站建设 2026/4/17 7:57:12

基于PSO - BP的时间序列预测:一键出图的奇妙之旅

基于粒子群优化算法优化BP神经网络(PSO-BP)的时间序列预测 PSO-BP时间序列 一键出图&#xff0c;只需替换成自己数据集即可&#xff0c;有教程。在数据的海洋中&#xff0c;时间序列预测一直是众多领域关注的焦点。今天咱就唠唠基于粒子群优化算法&#xff08;PSO&#xff09;优…

作者头像 李华
网站建设 2026/4/18 3:28:19

LAMMPS-VMD耦合:基于tcl语言反应力场分析化学键生成的成键数目研究工具

LAMMPS反应力场分子动力学模拟成键分析程序 基于vmd的tcl语言脚本支持反应力场原子成键数目分析。 主要用于统计化学反应涉及化学键生成和断裂的体系&#xff0c;比如煤燃烧&#xff0c;石墨烯合成过程等等。 用法简单&#xff0c;指定待计算的元素对即可得到对应键数目随模拟时…

作者头像 李华
网站建设 2026/4/18 3:36:09

ASO优化如何“顺时而为”?从节日到四季的全年优化指南

应用商店优化 (ASO) 中的季节性因素包括新年、圣诞节、情人节、万圣节、黑色星期五、网络星期一…… 能够提升应用流量的机会数不胜数。再加上体育赛季的开始、电视剧的首播、大型促销活动以及当地的节日——所有这些因素加起来&#xff0c;就构成了我们所说的&#xff1a;季节…

作者头像 李华
网站建设 2026/4/18 3:34:52

飞算JavaAI一键修复器:漏洞自动检测+精准修复,告别手动踩坑

在Java开发领域&#xff0c;代码安全始终是开发者不可逾越的核心议题。然而&#xff0c;随着项目规模持续扩大、业务逻辑日渐复杂&#xff0c;代码中的安全漏洞也随之滋生&#xff0c;给项目稳定运行埋下隐患。通用AI模型虽能识别部分常见漏洞代码模式&#xff0c;但在提供可直…

作者头像 李华