Nop 项目模块使用与更新指南
项目结构
nop-entropy 是一个 Maven 多模块项目,根目录包含 40+ 子模块。每个模块独立,按需选择依赖。
核心模块:
| 模块 | 说明 |
|---|---|
| nop-kernel | 虚拟文件系统、反射、XML/JSON 解析 |
| nop-xlang | XLang 脚本和模板语言 |
| nop-ioc | IoC 容器 |
| nop-config | 动态配置中心 |
| nop-orm | ORM 引擎 |
| nop-graphql | GraphQL 引擎(同时暴露 REST) |
| nop-rpc | 分布式 RPC |
| nop-report | 中国式报表引擎 |
| nop-rule | 规则引擎 |
| nop-batch | 批处理引擎 |
| nop-task | 逻辑流编排 |
| nop-wf | 工作流引擎 |
| nop-auth | 用户权限管理 |
| nop-sys | 系统配置管理 |
| nop-codegen | 代码生成器 |
| nop-autotest | 模型驱动自动化测试 |
Maven 坐标
所有模块发布到 Maven 中央仓库(需要最新版本号去 Central 查询)。坐标格式:
<dependency> <groupId>io.github.entropy-cloud</groupId> <artifactId>nop-orm</artifactId> <version>2.0.0-SNAPSHOT</version> </dependency>
也可以直接在本地编译安装:
git clone https://gitee.com/canonical-entropy/nop-entropy.git cd nop-entropy ./mvnw clean install -DskipTests
如何选择模块
最小引用只需 nop-kernel + nop-core-framework:
<dependency> <groupId>io.github.entropy-cloud</groupId> <artifactId>nop-kernel</artifactId> <version>${nop.version}</version> </dependency>
逐层添加:
- 需要 ORM → 加 nop-orm
- 需要 REST/GraphQL 接口 → 加 nop-graphql
- 需要报表 → 加 nop-report
- 需要用户权限 → 加 nop-auth + nop-sys
集成方式
Nop 不依赖 Spring,但可以集成到 Spring、Quarkus、Solon 中运行。
Quarkus 集成(推荐):
<dependency> <groupId>io.github.entropy-cloud</groupId> <artifactId>nop-quarkus</artifactId> <version>${nop.version}</version> </dependency>
参考 nop-auth-app 模块的配置。
Spring 集成:
<dependency> <groupId>io.github.entropy-cloud</groupId> <artifactId>nop-spring</artifactId> <version>${nop.version}</version> </dependency>
可以整合为独立的 Spring Boot starter。
Solon 集成(国产框架):
nop-solon 模块,打包体积比 Spring 小 10+ MB。
版本策略
项目目前版本号为 2.0.0-SNAPSHOT,处于快速迭代阶段。版本号含义:
- 2.x — 主版本号,架构级变更时升级
- x.0 — 次版本号,新增功能
- x.x-SNAPSHOT — 开发版,随时可能变更
如何获取更新
方式一:跟踪源码
git clone https://gitee.com/canonical-entropy/nop-entropy.git cd nop-entropy git pull ./mvnw clean install -DskipTests
推荐使用 Gitee 镜像,国内访问更快。
方式二:Maven 中央仓库
正式版发布后可以通过 Maven 依赖直接引入,无需本地编译。目前 2.0.0 正式版尚未发布。
方式三:关注项目动态
- 作者知乎专栏:可逆计算系列
- B 站频道:Nop 平台系列视频
升级注意事项
由于项目处于 2.0.0-SNAPSHOT 阶段,API 可能发生变化。升级时注意:
- 查看 CHANGELOG.md 了解每个版本的变更
- Delta 定制层不受自动生成代码变更的影响——这是 Nop 的优势
- 如果使用 Spring 集成,需同步检查 nop-spring 版本匹配