如果你的多模块项目中出现import的依赖全部爆红不妨先看看看父子模块packaging是否正确一、Maven 中packaging是什么在pom.xml中Xmlpackagingjar/packagingpackaging 决定了这个模块最终“产出什么东西”二、packaging pom是什么pom 只做“项目管理”不产出任何可运行或可引用的代码包pom 的核心作用作用说明父工程统一管理版本、插件模块聚合把多个子模块组合在一起依赖管理dependencyManagement构建管理pluginManagementpom 类型模块不会❌ 生成 jar❌ 包含源码编译结果❌ 被其他模块当作代码依赖使用示例典型父工程Xmlproject groupIdcom.example/groupId artifactIdspring-ai-parent/artifactId version1.0.0/version packagingpom/packaging modules modulecommon/module moduleagent-core/module moduleagent-web/module /modules /project父工程 99% 都是pom三、packaging jar是什么jar 产出一个 Java 类库 或 可运行程序jar 能做什么用途示例工具库common-utils.jar业务模块agent-core.jarSpring Boot 应用xxx.jar可运行jar 会发生什么✅ 编译 Java 源码✅ 生成.class✅ 打成.jar✅ 可被其他模块依赖示例普通模块Xmlproject artifactIdagent-core/artifactId四、pom vs jar 的本质区别维度pomjar是否产出代码❌✅是否可运行❌✅Spring Boot是否可被依赖❌只能继承✅是否参与编译❌✅多模块父工程✅ 必选❌业务模块❌✅记住一句话pom 管理项目jar 承载代码五、多模块项目中应该如何选择标准、多模块项目结构Plain Textproject-parent (pom) │ ├── project-common (jar) ├── project-domain (jar) ├── project-agent (jar) ├── project-web (jar)各模块 packaging 选择原则1️⃣ 父工程必须 pomXmlpackagingpom/packaging用来管理版本管理插件聚合模块2️⃣ 公共库模块jarXmlpackagingjar/packaging如common-utilscommon-modelai-core3️⃣ 业务模块jarXmlpackagingjar/packaging如agent-coreworkflow-engine4️⃣ 启动模块jarXmlpackagingjar/packaging✅ Spring Boot 启动类所在模块✅ 只一个启动模块常见错误错误 1业务模块用 pomXmlpackagingpom/packaging ❌结果没有 class无法被依赖编译直接失败错误 2父工程用 jarXmlpackagingjar/packaging ❌ 结果生命周期混乱依赖管理失效构建异常六、Spring Boot 多模块的“黄金结构”Textai-platform ├── pom.xml (pom) │ ├── ai-common (jar) ├── ai-agent-core (jar) ├── ai-graph-engine (jar) └── ai-boot (jar, 启动类)启动模块依赖其它模块Xmldependency groupIdcom.example/groupId artifactIdai-agent-core/artifactId /dependency七、一句话总结✅pom用来“管项目”不产出代码✅jar用来“装代码”可以运行、可以被依赖✅多模块最佳实践父工程用 pom其它全部用 jar