4.9 KiB
4.9 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
项目概述
小蚂蚁云后台管理系统 (RXThinkCMF):Spring Boot 3.3 (JDK 17) 多模块 Maven 后端 + Vue 3 管理后台前端 (xiaomayi-ui/)。注释与提交信息使用中文;Java 文件带版权头,不要删除。
常用命令
后端(Maven,无 mvnw,需系统 mvn)
- 全量构建:
mvn clean package(默认localprofile) - 指定环境构建:
mvn clean package -P prod(可选:local|dev|test|uat|prod) - 运行后台应用:
java -jar xiaomayi-modules/xiaomayi-admin/target/xiaomayi-admin.jar,或 IDE 直接运行主类com.xiaomayi.admin.XMAdminApplication - 单独构建某模块:
mvn clean package -pl xiaomayi-services/xiaomayi-system -am(-am连带构建依赖模块) - 测试实际被跳过:admin 的 surefire 配置
skipTests=true,父 POM 配置 compiler 跳过 test 编译,仓库中基本没有测试
前端(xiaomayi-ui/,包管理器 pnpm)
- 安装依赖:
pnpm install - 开发:
pnpm dev(端口 8001,代理/api→http://127.0.0.1:8081/api,见.env.development的VITE_PROXY) - 构建:
pnpm build或pnpm build:test - 类型检查:
pnpm type:check - Lint:
pnpm lint:eslint、pnpm lint:prettier、pnpm lint:stylelint
后端架构
模块依赖方向:xiaomayi-modules(可运行应用)→ xiaomayi-services(业务模块)→ xiaomayi-common(基础组件)。
xiaomayi-common/:约 30 个能力组件(security、mybatis、redis、oss/minio、sms、email、alipay/wxpay、websocket、tenant、excel、generator 等)+ BOM 模块xiaomayi-all。所有第三方依赖版本集中在xiaomayi-common/pom.xml的 dependencyManagement 中管理,新增依赖版本加在这里。xiaomayi-services/:业务领域模块(system、cms、product、order、member、logistics、invoice、quartz、generator),每层结构为dto / entity / mapper / service,Mapper XML 在各模块src/main/resources/mapper/。xiaomayi-modules/:可运行应用。xiaomayi-admin(后台管理,主类XMAdminApplication,端口 8081,context-path/api);xiaomayi-web(前台网站XMWebApplication);xiaomayi-uniapp(客户端接口UniAppApplication)。xiaomayi-visual/xiaomayi-monitor:监控应用。
后端约定:
- Controller 位于应用模块(主要在
xiaomayi-admin/.../controller/<业务域>/),注入 services 模块的 Service;不要把 Controller 写进 services 模块。 - 统一响应体
com.xiaomayi.core.utils.R:{code, msg, data, count},code=0成功、1失败,分页总数放在count。前端 axios 封装按code === 0判断成功(xiaomayi-ui/src/utils/http/axios/)。 - 认证用 Spring Security;放行 URL 在
xiaomayi-admin/src/main/resources/configs/application-security.yml。 - ORM 为 MyBatis(XML mapper),多数据源 dynamic-datasource + Druid;默认主库 MySQL,库名
rxthinkcmf.web,初始化脚本document/rxthinkcmf.web.sql。 - 配置分两层:
application.yml通过spring.config.import导入公共配置configs/application-*.yml(mybatis、security、logger、tenant、payment 等)和环境配置configs/<env>/application-*.yml(redis、aliyun、minio、token、email 等)。spring.profiles.active由 Maven profile 的@package.environment@资源过滤注入——改application-<env>.yml的内容时注意它是被 Maven filtering 处理的资源。 - 版本号统一为
${revision}(当前 2.0.0),由 flatten-maven-plugin 解析,不要在子 POM 中硬编码版本。 - 代码生成器:
GeneratorController+ Freemarker 模板(xiaomayi-admin/src/main/resources/templates/,含modules/后端模板和ui/前端模板)。
前端架构(xiaomayi-ui)
Vue 3 + Vite 3 + TypeScript + Element Plus + Pinia,结构类似 vben-admin。
- 接口定义在
src/api/<域>/<模块>.ts,页面在src/views/<域>/;@别名指向src/。 - 动态路由:登录后由后端菜单接口(
getRouters)返回菜单树,src/router/generator-routers.ts用import.meta.glob('../views/**/*.{vue,tsx}')把菜单里的component路径字符串解析成组件。新增页面必须放在src/views/下,且菜单表中配置对应路径,否则路由无法加载。 - 请求走
src/utils/http/axios/封装,接口前缀VITE_GLOB_API_URL_PREFIX=/api,与后端 context-path 对应。 - 环境变量在根目录
.env、.env.development、.env.test、.env.production。
部署
- 根目录
Dockerfile+docker-compose.yml:构建并运行 admin 应用(挂载./logs、./upload)。 .jenkins/:CI 配置(Jenkinsfile 调用内部 share-library 的pipelineJDKService)。docker/deploy.sh:从 Harbor 拉取镜像并docker compose up。