# mjava-ai

Java 后端基座、公共运行时、标准接口和客户子项目的统一源码仓库。Spring Boot 2.2.13 + MySQL。

## 模块

| 模块 | 用途 |
|---|---|
| `mjava/` | 基座 jar（被所有子项目依赖；不可独立运行） |
| `mjava-mcli/` | 个人技术验证、接口调试和客户模块模板（端口 9001） |
| `mjava-pro/` | 公共项目 / 多租户单部署运行时（端口 9010） |
| `mjava-com/` | 将基础能力封装为标准接口的 BaaS 网关（端口 9020） |
| `mjava-benteler/` | 本特勒 EIAM 用户与组织同步 |
| `mjava-harrison/` | Harrison Line 发票与业务单据处理 |
| `mjava-guangming/` | 光明集团邮件 SSO 与应用权限同步 |

## 项目边界

- 可复用的第三方原子接口和基础能力放在 `mjava/`。
- 钉钉角色与应用可见范围统一通过 `mjava` 的 `DDClient_Role` 调用，不再放入 `DDClient_Contacts` 或客户模块重复实现。
- 个人验证和技术试验放在 `mjava-mcli/`，验证成熟后再迁入对应公共层。
- 多客户共用的业务运行时放在 `mjava-pro/`；标准对外接口放在 `mjava-com/`。
- 客户定制代码使用独立的 `mjava-{customer}/` Maven 模块、配置和可执行 jar，资料归入 `_mjava/2 one/<客户>/`。
- 不属于本聚合工程的独立 Java 项目保留在后端根目录；当前 `akds` 位于 `/Users/malk/server/cur/akds`，通过 `后端/阿科德斯/程序` 快捷方式引用。

## 配置约定

- 每个可运行模块提交 `application.yml`，真实 `application-dev.yml`、`application-test.yml`、`application-prod.yml` 不入库。
- 开发、生产配置示例使用 `application-{profile}.yml.example`；复制成对应 profile 文件后再启动。
- 数据库密码、钉钉密钥、宜搭令牌及客户系统凭据统一通过环境变量注入，禁止写入源码和可提交配置。

## 构建

```bash
mvn -pl mjava-{module} -am clean compile
mvn -pl mjava -DskipTests=false -Dmaven.test.skip=false test
mvn clean package -DskipTests
java -jar mjava-{module}/target/mjava-{module}.jar --spring.profiles.active=prod
```

## 文档与设计规范

> 本仓库保留源码、构建配置和源码级说明；客户事项、目录设计和开发规范统一在文档中心管理：
>
> `/Users/malk/Desktop/Tech/1. malk/后端/_mjava/`

后端开发通用规范见 `/Users/malk/Desktop/Tech/1. malk/后端/CLAUDE.md`。
