本地私有开发规范
本文档面向 私有部署(private) 场景下的本地开发、构建与调试,区别于 SaaS 多租户模式。
1. 环境要求
| 工具 | 版本要求 | 说明 |
|---|---|---|
| Java | 17+ | 建议 Eclipse Adoptium / Microsoft JDK |
| Kotlin | 1.9.24 | 由 Gradle 插件管理 |
| Gradle | 8.13+ | 使用项目自带的 gradlew 包装器 |
| Node.js | 18+ | 仅用于前端开发 |
| pnpm / npm | 最新稳定版 | 前端依赖管理 |
| MySQL | 8.0+ / PostgreSQL | 数据库 |
| Git | 2.40+ | 版本控制 |
Windows 特别注意
- 请使用 PowerShell 执行 Gradle 命令。
JAVA_HOME必须显式指向 JDK 17 安装目录。- 避免在
.gitignore忽略的目录(如.gradle/)下执行构建命令。
# PowerShell 示例
$env:JAVA_HOME = "C:\Program Files\Eclipse Adoptium\jdk-17.0.13.11-hotspot"
& "E:\develop-space\dimebia-com\gradlew" build -x test
2. 项目结构
dimebia-com/
├── core/ # MIT License - 核心领域层
│ ├── model/ # JPA 实体
│ ├── repository/ # 数据访问层(JPA + jOOQ)
│ ├── service/ # 业务逻辑
│ ├── account/ # 账户管理
│ ├── billing/ # 计费引擎
│ ├── reconciliation/ # 对账引擎
│ ├── tax/ # 税务计算
│ ├── plugin/ # 支付插件系统
│ ├── invoice/ # 发票管理
│ ├── iso20022/ # ISO 20022 消息
│ ├── dto/ # 数据传输对象
│ ├── util/ # 工具类
│ ├── exception/ # 异常处理
│ └── audit/ # 审计日志
├── saas/ # Commercial License - SaaS 扩展
│ ├── config/ # 租户配置
│ ├── security/ # JWT、认证
│ ├── notification/ # 邮件、短信、Webhook
│ ├── report/ # 报表服务
│ └── admin/ # 管理后台
├── boot/ # MIT License - 应用启动模块
│ ├── src/main/kotlin/.../controller/ # REST 控制器
│ ├── src/main/kotlin/.../configuration/ # 配置类
│ ├── src/main/resources/ # 配置文件、Flyway 迁移
│ └── src/main/resources/webapp/ # 前端构建产物(自动复制)
├── admin-ui/ # MIT License - Web 管理界面
│ ├── src/
│ │ ├── lib/
│ │ │ ├── api/ # API 客户端
│ │ │ ├── components/ # Svelte UI 组件
│ │ │ ├── pages/ # 页面组件
│ │ │ ├── stores/ # Svelte stores
│ │ │ └── types/ # TypeScript 类型
│ │ └── routes/ # SvelteKit 路由
│ ├── package.json
│ ├── svelte.config.js
│ ├── vite.config.ts
│ └── tailwind.config.ts
├── openspec/ # 技术规范与变更提案
│ ├── changes/ # 进行中的变更
│ │ └── archive/ # 已归档的变更
│ └── specs/ # 已发布的技术规范
├── docs/ # 文档
├── docker/ # Docker 配置
└── build.gradle.kts # Gradle 构建脚本
模块依赖关系
boot → saas → core
- core:纯领域逻辑,不依赖任何上层模块。
- saas:SaaS 多租户扩展,依赖 core。
- boot:应用入口、Web 层、配置,依赖 saas 和 core。