# Ineed-Core 真实模块清单

## 文档定位

本文档按当前仓库里的聚合 `pom.xml` 说明“真实模块声明”。

这里的 source of truth 是：

- 根 `pom.xml`
- `ineed-core-modules/pom.xml`
- `ineed-core-reactive-modules/pom.xml`
- `ineed-core-tests/pom.xml`
- `ineed-core-starters/pom.xml`
- `ineed-core-bom/pom.xml`

如果某个目录只存在于工作区、但还没有进入这些 `pom.xml` 的 `<modules>` 声明，它不应被视为当前稳定模块清单的一部分。

如果要判断普通 Java 模块、聚合模块、BOM 模块到底该长什么样，应阅读 [java-module-directory-guide.md](java-module-directory-guide.md)。
如果要创建新的业务聚合模块或判断业务模块标准骨架，应阅读 [business-module-layout-guide.md](../project-development/business-module-layout-guide.md)；那是业务模块约定，不是当前 `ineed-core` 自身的稳定声明清单。
如果要确认这些模块当前是否推荐用于业务主链路，请阅读 [current-implementation-status.md](current-implementation-status.md)。

## 根聚合模块

根 `pom.xml` 当前声明的模块如下：

| 模块 | 角色 |
|------|------|
| `ineed-rdb-metadata` | 数据库元数据分析与读取支撑 |
| `ineed-core-base` | 基础契约、公共工具与共享上下文能力 |
| `ineed-integration` | 内部事件、蒸馏事件与业务事件配置支撑 |
| `ineed-core-data-base` | 数据层共享底座 |
| `ineed-core-httpclient` | HTTP Client 同步/响应式共享契约 |
| `ineed-core-socketaccess` | Socket 接入同步/响应式共享契约 |
| `ineed-core-modules` | 阻塞式主链路聚合模块 |
| `ineed-core-reactive-modules` | 响应式能力线聚合模块 |
| `ineed-core-tests` | 测试聚合模块 |
| `ineed-core-starters` | starter 聚合模块 |
| `ineed-core-bom` | BOM 聚合模块 |

## `ineed-core-modules` 子模块

`ineed-core-modules/pom.xml` 当前声明：

| 模块 | 角色 |
|------|------|
| `ineed-core-context` | 阻塞式上下文能力 |
| `ineed-core-httpclient-jdk` | JDK 阻塞式 HTTP Client 实现 |
| `ineed-core-httpclient-okhttp` | OkHttp 阻塞式 HTTP Client 实现 |
| `ineed-core-socketaccess-jdk` | JDK Socket 接入实现 |
| `ineed-core-socketaccess-netty` | Netty Socket 接入实现 |
| `ineed-core-socketaccess-nio` | NIO Socket 接入实现 |
| `ineed-core-service-cache` | 基于 Spring Cache 的阻塞式服务缓存、租户隔离键与事务提交后失效能力 |
| `ineed-core-engine` | `Service` / `Manager` 业务编排能力 |
| `ineed-core-webmvc` | 阻塞式 Web API 入口 |
| `ineed-core-datasource` | 数据源相关支撑 |
| `ineed-core-data-core` | 共享 CRUD / 查询 / 状态 / 排序 / 删除数据能力 |
| `ineed-core-data-jpa` | JPA 数据实现 |
| `ineed-core-data-jdbc` | JDBC 数据实现 |
| `ineed-core-data-mybatis-flex` | MyBatis-Flex 数据实现 |
| `ineed-core-data-mongodb` | MongoDB 数据实现 |

补充说明：

- `ineed-core-data-elasticsearch` 目录可以存在，但当前在聚合 `pom.xml` 中仍是注释状态，不属于当前稳定声明模块。

## `ineed-core-reactive-modules` 子模块

`ineed-core-reactive-modules/pom.xml` 当前声明：

| 模块 | 角色 |
|------|------|
| `ineed-core-context-reactive` | 响应式上下文能力 |
| `ineed-core-httpclient-reactive` | 响应式 HTTP Client 共享契约 |
| `ineed-core-socketaccess-reactor-netty` | Reactor Netty Socket 接入实现 |
| `ineed-core-service-cache-reactive` | 基于 Reactive Redis 的响应式服务缓存、租户隔离键与事务提交后失效能力 |
| `ineed-core-engine-reactive` | 响应式 `Service` / `Manager` 编排能力 |
| `ineed-core-httpclient-webclient` | Spring WebClient 响应式 HTTP Client 实现 |
| `ineed-core-webflux` | 响应式 Web 入口 |
| `ineed-core-data-core-reactive` | 响应式数据共享能力 |
| `ineed-core-data-r2dbc` | R2DBC 数据实现 |

## `ineed-core-tests` 子模块

`ineed-core-tests/pom.xml` 当前声明：

| 模块 | 角色 |
|------|------|
| `ineed-core-test-webmvc` | 阻塞式主链路测试聚合入口 |
| `ineed-core-test-webflux` | 响应式测试聚合入口 |

补充说明：

- 如果工作区里还出现 `ineed-core-test-webmvc-jpa`、`ineed-core-test-webmvc-jdbc`、`ineed-core-test-webmvc-mybatisflex` 等目录，但它们尚未进入当前 `pom.xml` 模块声明，就应视为在建目录，而不是当前稳定聚合模块。

## `ineed-core-starters` 子模块

`ineed-core-starters/pom.xml` 当前声明：

| 模块 | 角色 |
|------|------|
| `ineed-starter-druid` | Druid 官方 starter 与常见 JDBC 驱动的依赖聚合 |

补充说明：

- 当前 starter 模块没有自定义源码级自动配置类。
- 当前未检测到 `spring.factories` 或 `META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports` 自动配置入口。
- 因此它应被理解为依赖聚合，不应被理解为完整的 ineed 开箱即用 starter。

## `ineed-core-bom` 管理范围

`ineed-core-bom/pom.xml` 通过 `dependencyManagement` 管理 core、reactive、data 和 starter artifact 版本。

需要注意：

- BOM 管理 artifact 不等于当前根聚合模块清单。
- `ineed-core-bom` 已同时管理 `ineed-core-service-cache` 与 `ineed-core-service-cache-reactive`，下游可以通过 BOM 对齐两套缓存运行时的版本。
- 新增或删除真实 Maven 模块时，应同时核对根聚合 `pom.xml`、对应分组聚合 `pom.xml` 和 BOM 管理范围，避免下游只通过 BOM 看到不存在或未发布的 artifact。

## 当前推荐主链路对应模块

当前推荐主链路 `WebMvc + JPA/JDBC/MyBatis-Flex` 对应的真实模块主要是：

- Web 入口：`ineed-core-webmvc`
- 编排层：`ineed-core-engine`
- 服务缓存：`ineed-core-service-cache`（由 `ineed-core-engine` 直接依赖）
- 共享数据能力：`ineed-core-data-core`
- 具体数据栈：`ineed-core-data-jpa`、`ineed-core-data-jdbc`、`ineed-core-data-mybatis-flex`
- 回归测试入口：`ineed-core-test-webmvc`

## 阅读建议

- 想理解“应该怎么进入框架、各层怎么分工”，先看 [module-capability-map.md](module-capability-map.md)。
- 想确认“当前仓库到底声明了哪些模块、哪些目录只是工作区存在”，看本文档。
- 想判断“这个 Java 模块到底该不该有 `src`、是不是聚合模块或 BOM 模块”，读 [java-module-directory-guide.md](java-module-directory-guide.md)。
- 想创建新的业务聚合模块、补齐 `core/engine/jpa/jdbc/mybatis-flex/webmvc/engine-reactive/r2dbc/webflux` 骨架，读 [business-module-layout-guide.md](../project-development/business-module-layout-guide.md)。
- 想判断“模块已声明但是否推荐使用”，读 [current-implementation-status.md](current-implementation-status.md)。

> 最后更新：2026-09-02
