跳转到内容

快速开始

软件 要求
JDK 21
Maven 3.9 或更高版本
MySQL 8.x
Redis 6.x 或更高版本
Terminal window
git clone https://github.com/chengliang4810/jimuqu-admin.git
cd jimuqu-admin

如果本机已经安装 MySQL 8 和 Redis,可以直接使用现有服务。全新开发环境也可以使用 Docker 启动与默认开发配置匹配的实例:

Terminal window
docker run --name jimuqu-mysql \
-e MYSQL_ROOT_PASSWORD='P@ssw0rd' \
-e MYSQL_DATABASE='jimuqu_db' \
-p 3306:3306 \
-d mysql:8.4
docker run --name jimuqu-redis \
-p 6379:6379 \
-d redis:7-alpine

Windows PowerShell 需要把命令写成单行:

Terminal window
docker run --name jimuqu-mysql -e MYSQL_ROOT_PASSWORD='P@ssw0rd' -e MYSQL_DATABASE='jimuqu_db' -p 3306:3306 -d mysql:8.4
docker run --name jimuqu-redis -p 6379:6379 -d redis:7-alpine

等待 MySQL 完成初始化后再启动后端:

Terminal window
docker logs -f jimuqu-mysql

日志出现 ready for connections 后按 Ctrl+C 退出日志查看。这里的密码只用于本机开发容器,不能用于测试、预发布或生产环境。

开发配置位于 jimuqu-admin/src/main/resources/app-dev.yml,默认连接:

jdbcUrl: jdbc:p6spy:mysql://localhost:3306/jimuqu_db
username: root
password: P@ssw0rd

使用自行安装的 MySQL 时,请先创建 jimuqu_db,并把该文件中的地址、用户名和密码改为本机开发数据库信息。不要把个人或生产凭据提交到 Git。

CREATE DATABASE IF NOT EXISTS jimuqu_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

首次连接空数据库时,AutoTable 会根据实体创建表,并从 classpath:sql/MySQL/jimuqu.sql 写入初始化数据。已有业务数据的数据库不会重复写入种子数据。

推荐先完成一次完整构建,再运行生成的 JAR:

Terminal window
mvn clean package -Pdev
java -jar jimuqu-admin/target/jimuqu-admin.jar --solon.env=dev

需要使用 Maven 开发启动时,在依赖已经完成构建后执行:

Terminal window
mvn -pl jimuqu-admin solon:run -Pdev

服务启动后默认监听 http://127.0.0.1:5320。保持这个终端运行,再打开一个新终端启动前端。

前端是独立仓库,要求 Node.js ^22.18.0 || ^24.0.0 和 pnpm 11.2.2。

Terminal window
git clone https://github.com/chengliang4810/jimuqu-admin-ui.git
cd jimuqu-admin-ui

Gitee 镜像:

Terminal window
git clone https://gitee.com/chengliang4810/jimuqu-admin-ui.git
cd jimuqu-admin-ui

先检查 Node.js 版本:

Terminal window
node --version

使用 Node.js 自带的 Corepack 安装项目锁定的 pnpm:

Terminal window
corepack enable
corepack prepare pnpm@11.2.2 --activate
pnpm --version

如果当前 Node.js 发行包没有提供 Corepack,可以改用:

Terminal window
npm install --global pnpm@11.2.2
Terminal window
pnpm install --frozen-lockfile

必须在仓库根目录执行。项目使用 pnpm Workspace 和 catalog 统一依赖版本,不支持 npm 或 yarn 安装。

当前 .env.development 已配置:

VITE_PORT=5666
VITE_BASE=/
VITE_GLOB_API_URL=/dev-api

vite.config.ts 会把 /dev-api 请求代理到 http://127.0.0.1:5320,并在转发时移除 /dev-api 前缀。默认本地联调无需修改 API 地址。

如果后端不在本机 5320 端口,需要修改 vite.config.ts 中的代理目标后重新启动前端开发服务器。

Terminal window
pnpm dev

启动成功后访问 http://127.0.0.1:5666。前端终端和后端终端都必须保持运行。

按以下顺序检查:

  1. 后端终端没有数据库、Redis 或端口占用错误。
  2. 浏览器能够打开 http://127.0.0.1:5666。
  3. 登录页请求 /dev-api/auth/code 时没有代理连接失败。
  4. 登录后能够正常请求用户信息、权限码和动态菜单。

开发环境默认关闭图片验证码与接口加密,便于本地联调;生产环境仍会启用相应安全能力。

Terminal window
# TypeScript 类型检查
pnpm typecheck
# 单元测试
pnpm test:unit
# 代码检查
pnpm lint
# 生产构建
pnpm build
# 本地预览生产构建
pnpm preview

端到端测试不要直接在前端仓库运行 pnpm test:e2e。项目支持的完整入口位于后端仓库:

Terminal window
node script/test-fullstack.mjs

前端和后端终端分别按 Ctrl+C。如果使用了上面的 Docker 容器:

Terminal window
docker stop jimuqu-mysql jimuqu-redis

再次开发时使用:

Terminal window
docker start jimuqu-mysql jimuqu-redis
  1. 阅读配置说明,了解环境变量与公共配置。
  2. 阅读项目结构,确认模块职责。
  3. 按照CRUD 开发新增第一个业务接口。