# 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 等)