# gc-cloud
**Repository Path**: genchuan/gc-cloud
## Basic Information
- **Project Name**: gc-cloud
- **Description**: GC-Cloud 采用先进的多模块(Multi-Module)Maven 企业级架构设计,彻底告别单一臃肿的传统大单体。项目本身作为聚合父工程(Parent Project),通过精细化的模块解耦,将各个微服务、公共组件、业务领域逻辑拆分为独立自治的子项目。
开发者或企业可以根据实际业务需求,按需单独启动某个微服务模块,实现极速编译与轻量化部署。结合企业级私有仓库(如 Nexus)进行统一的依赖
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-09-10
- **Last Updated**: 2026-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# gc-cloud
这是一个基于 Spring Boot / Spring Cloud / Maven 多模块架构的企业级云端项目,包含底层依赖、基础框架、网关、以及多个业务模块。项目中各模块均配置了 Nexus 作为 Maven 仓库,用于统一依赖解析和制品发布。
## 1. 项目概览
本仓库采用多模块组织方式,核心结构如下:
```text
gc-cloud/
├── yudao-dependencies/ # 统一 BOM 依赖管理
├── yudao-framework/ # 基础框架及 starter
├── yudao-gateway/ # Spring Cloud Gateway 网关
├── yudao-module-ai/ # AI 模块
├── yudao-module-bpm/ # 流程引擎模块
├── yudao-module-crm/ # CRM 模块
├── yudao-module-erp/ # ERP 模块
├── yudao-module-fms/ # FMS 模块
├── yudao-module-hrm/ # HRM 模块
├── yudao-module-im/ # IM 模块
├── yudao-module-infra/ # 基础设施模块
├── yudao-module-iot/ # 物联网模块
├── yudao-module-mall/ # 电商/商城模块
├── yudao-module-member/ # 会员模块
├── yudao-module-mes/ # MES 模块
├── yudao-module-mp/ # 微信/公众号模块
├── yudao-module-pay/ # 支付模块
├── yudao-module-pms/ # PMS 模块
├── yudao-module-report/ # 报表模块
├── yudao-module-system/ # 系统管理模块
├── yudao-module-wms/ # WMS 模块
└── ...
```
## 2. 模块说明
### 2.1 基础依赖与框架
- `yudao-dependencies`
- 统一 BOM 管理项目所有 Maven 依赖版本
- 负责 Spring Boot、Spring Cloud、MyBatis、Knife4j、Nacos、RocketMQ 等版本管理
- `yudao-framework`
- 统一管理基础 starter 与通用能力
- 包含:
- `yudao-common`
- `yudao-spring-boot-starter-env`
- `yudao-spring-boot-starter-mybatis`
- `yudao-spring-boot-starter-redis`
- `yudao-spring-boot-starter-web`
- `yudao-spring-boot-starter-security`
- `yudao-spring-boot-starter-websocket`
- `yudao-spring-boot-starter-monitor`
- `yudao-spring-boot-starter-protection`
- `yudao-spring-boot-starter-job`
- `yudao-spring-boot-starter-mq`
- `yudao-spring-boot-starter-rpc`
- `yudao-spring-boot-starter-excel`
- `yudao-spring-boot-starter-test`
- `yudao-spring-boot-starter-biz-tenant`
- `yudao-spring-boot-starter-biz-data-permission`
- `yudao-spring-boot-starter-biz-ip`
### 2.2 网关
- `yudao-gateway`
- API 网关,基于 Spring Cloud Gateway
- 负责路由转发、统一鉴权、服务发现、配置读取等
### 2.3 业务模块
按模块分类整理如下:
- AI 领域:
- `yudao-module-ai`
- BPM/流程:
- `yudao-module-bpm`
- CRM:
- `yudao-module-crm`
- ERP:
- `yudao-module-erp`
- FMS:
- `yudao-module-fms`
- HRM:
- `yudao-module-hrm`
- IM:
- `yudao-module-im`
- 基础设施:
- `yudao-module-infra`
- IoT/物联网:
- `yudao-module-iot`
- 业务/电商:
- `yudao-module-mall`
- `yudao-module-member`
- `yudao-module-pay`
- `yudao-module-pms`
- `yudao-module-wms`
- 制造/生产:
- `yudao-module-mes`
- 微信公众号/小程序:
- `yudao-module-mp`
- 报表:
- `yudao-module-report`
- 系统管理:
- `yudao-module-system`
> 说明:多数业务模块均包含 `-api` 与 `-server` 两类子模块,分别用于 API 定义与服务实现。
## 3. 技术栈
- Java:25
- Maven:3.9+
- Spring Boot:4.1.x
- Spring Cloud:2025.x
- Spring Cloud Alibaba:2025.x
- Nacos:服务注册中心与配置中心
- MyBatis / MyBatis Plus
- Redis
- RabbitMQ / RocketMQ(按模块)
- Gateway
- Knife4j / OpenAPI
## 4. 环境要求
### 4.1 本地开发环境
建议安装:
- JDK 25
- Maven 3.9+
- Git
- Nexus 3.x
- 需要本地/内网可访问 Nexus 仓库
### 4.2 Nexus 配置要求
当前仓库中各 Maven POM 已经配置了 Nexus 相关地址,默认使用:
- 公共仓库:`http://127.0.0.1:8081/repository/maven-public/`
- 发布仓库(Release):`http://127.0.0.1:8081/repository/maven-releases/`
- 发布仓库(Snapshot):`http://127.0.0.1:8081/repository/maven-snapshots/`
对应的 Maven 发布配置通常使用以下仓库 id:
- `local-nexus-releases`
- `local-nexus-snapshots`
- `remote-gc-nexus`
## 5. Maven 配置示例(Nexus)
在 `~/.m2/settings.xml` 中添加 Nexus 认证配置,例如:
```xml
local-nexus-releases
admin
your-password
local-nexus-snapshots
admin
your-password
local-nexus-public
*
http://127.0.0.1:8081/repository/maven-public/
```
> 如果你的 Nexus 地址不是 `127.0.0.1:8081`,请同步替换项目中所有 `distributionManagement` 与 `repositories` 中的 URL。
## 6. 构建与部署
项目中同时支持两种常见方式:
- `mvn install`:适合开发阶段,本地安装到 Maven 本地仓库,供同一机器上的其他模块直接依赖
- `mvn deploy`:适合正式发布或部署到 Nexus 私服,供团队共享和远程拉取
### 6.1 首次构建顺序
建议按以下顺序构建:
1. `yudao-dependencies`
2. `yudao-framework`
3. `yudao-gateway`
4. 各业务模块
### 6.2 开发阶段:使用 Maven install
开发时通常不需要直接上传到 Nexus,而是先 install 到本地 Maven 仓库,方便本地联调和模块间依赖。此方式是最适合开发环境的方案。
```bash
mvn -f yudao-dependencies/pom.xml clean install -DskipTests
mvn -f yudao-framework/pom.xml clean install -DskipTests
mvn -f yudao-gateway/pom.xml clean install -DskipTests
```
单个模块安装:
```bash
mvn -f yudao-module-system/pom.xml clean install -DskipTests
mvn -f yudao-module-ai/pom.xml clean install -DskipTests
```
如果你只是想让当前机器上的其他 Maven 项目,能够直接依赖这些模块,优先使用 `install`。
### 6.3 发布到 Nexus:使用 Maven deploy
如果要将制品上传到 Nexus 私服,供团队共享或正式交付,则使用 `deploy`:
```bash
mvn -f yudao-dependencies/pom.xml clean deploy
mvn -f yudao-framework/pom.xml clean deploy
mvn -f yudao-gateway/pom.xml clean deploy
mvn -f yudao-module-system/pom.xml clean deploy
mvn -f yudao-module-ai/pom.xml clean deploy
```
### 6.4 开发与发布的区别
- `mvn install`
- 会把产物安装到本地 `~/.m2/repository`
- 仅适用于本机开发与本地调试
- 不会上传到 Nexus
- `mvn deploy`
- 会上传到配置中的 `distributionManagement`
- 适用于团队协作、CI/CD、私服共享
- 需要 Nexus 账号和权限
### 6.5 Nexus(Snapshot / Release)
开发版本默认使用 `-SNAPSHOT`,发布配置会落到 `maven-snapshots`:
```bash
mvn -f yudao-dependencies/pom.xml clean deploy
mvn -f yudao-framework/pom.xml clean deploy
mvn -f yudao-gateway/pom.xml clean deploy
```
正式版本使用 release 仓库:
```bash
mvn -f yudao-dependencies/pom.xml clean deploy -Drelease
```
> 只要项目中的 `` 包含 `SNAPSHOT`,Maven 会自动将制品上传到 Snapshot 仓库。
### 6.6 批量编译/安装/部署脚本示例
如果你需要统一处理所有模块,开发阶段推荐 `install`:
```bash
for d in yudao-dependencies yudao-framework yudao-gateway yudao-module-ai yudao-module-bpm yudao-module-crm yudao-module-erp yudao-module-fms yudao-module-hrm yudao-module-im yudao-module-infra yudao-module-iot yudao-module-mall yudao-module-member yudao-module-mes yudao-module-mp yudao-module-pay yudao-module-pms yudao-module-report yudao-module-system yudao-module-wms; do
if [ -f "$d/pom.xml" ]; then
echo "==> Installing $d"
mvn -f "$d/pom.xml" clean install -DskipTests
fi
done
```
如果要统一发布到 Nexus:
```bash
for d in yudao-dependencies yudao-framework yudao-gateway yudao-module-ai yudao-module-bpm yudao-module-crm yudao-module-erp yudao-module-fms yudao-module-hrm yudao-module-im yudao-module-infra yudao-module-iot yudao-module-mall yudao-module-member yudao-module-mes yudao-module-mp yudao-module-pay yudao-module-pms yudao-module-report yudao-module-system yudao-module-wms; do
if [ -f "$d/pom.xml" ]; then
echo "==> Deploying $d"
mvn -f "$d/pom.xml" clean deploy -DskipTests
fi
done
```
## 7. 依赖解析说明
项目通过以下方式从 Nexus 拉取依赖:
- 在各个 `pom.xml` 中配置了 `repositories`
- 默认访问 `maven-public` 仓库
- 统一 BOM 依赖来自 `yudao-dependencies`
例如:
```xml
remote-gc-nexus
http://127.0.0.1:8081/repository/maven-public/
```
## 8. 常见问题
### 8.1 401 / 403
通常是 Nexus 账号密码不正确,或 `settings.xml` 未配置对应 `server` 节点。
### 8.2 404 / 无法下载依赖
检查 Nexus 中是否已创建对应仓库:
- `maven-public`
- `maven-releases`
- `maven-snapshots`
### 8.3 版本冲突
优先使用 `yudao-dependencies` 中定义的 BOM 版本,避免在模块中单独定义版本号。
## 9. 部署建议
建议的发布流程:
1. 在 Nexus 中创建 `maven-public`、`maven-releases`、`maven-snapshots`
2. 配置 Maven `settings.xml` 认证信息
3. 先发布 `yudao-dependencies`
4. 再发布 `yudao-framework`
5. 按顺序发布网关和业务模块
6. 其他服务通过 Nexus 拉取依赖,统一版本管理
## 10. 总结
本项目是一个典型的 Maven 多模块云原生应用,采用
- 模块化工程结构
- 统一 BOM 依赖管理
- Nexus 统一制品库
- 多环境 Release / Snapshot 发布
的方式进行开发和部署。按上述步骤即可完成本地编译、依赖解析和 Nexus 制品发布。
如果你需要,我还可以继续为你补一份:
- 更适合团队使用的中文版详细部署手册
- 一份 `settings.xml` 真实模板文件
- 一份适合 Linux 服务器的自动化部署脚本(包括 Nexus、Nacos、Redis、MySQL 等)