项目启动指南
本文档说明如何获取代码、整合模块,并在本地运行起前后端项目。
平台支持两种运行模式:
| 模式 | 说明 | 是否需要 Nacos | 适用场景 |
|---|---|---|---|
| 单体模式(推荐) | 只启动 pointlion-server 一个服务,所有已启用模块打包在一个 Jar 中 | ❌ 不需要 | 绝大多数交付、演示、私有化部署 |
| 微服务模式 | 网关 + 各业务模块独立部署、独立扩容 | ✅ 需要 | 大规模、高可用生产集群 |
建议先以单体模式跑通,再按需切换微服务模式。
版本选择:JDK21 版 与 JDK8 版
平台提供两条版本线,功能一致,按企业现有 Java 环境选择:
| 对比项 | JDK21 版(推荐) | JDK8 版(兼容版) |
|---|---|---|
| 代码分支 | version-jdk21 | version-jdk8 |
| JDK 要求 | 21 | 1.8 |
| Spring Boot | 3.5.x | 2.7.18 |
| Spring Cloud Alibaba | 2025.0.0.0 | 2021.0.6.2 |
| 流程引擎 Flowable | 7.0.1 | 6.8.0 |
| Docker 基础镜像 | eclipse-temurin:21-jre | eclipse-temurin:8-jre |
如何选择:新项目、可自主升级 JDK 的环境,直接使用 JDK21 版(主线,新特性首发于此);存量服务器仅能提供 JDK 1.8、且短期内无法升级的,选择 JDK8 版。两版的业务功能与操作界面保持同步。
注意:两条版本线的 Jar 不可混用——JDK8 环境无法运行 JDK21 版产物(会报
UnsupportedClassVersionError),反之 JDK21 版产物也无法在 JDK8 上启动。请按所选版本线准备对应的 JDK。
一、前提条件
| 软件 | 版本要求 | 说明 |
|---|---|---|
| JDK | 21(JDK21 版)/ 1.8(JDK8 版) | 后端编译运行环境,按所选版本线安装,二选一即可 |
| Maven | 3.6+ | 后端构建工具 |
| Node.js | 16+ | 前端构建环境 |
| pnpm | 8+ | 前端包管理器(推荐) |
| MySQL | 5.7+ / 8.0 | 数据库(必须) |
| Redis | 6.0+ | 缓存(必须) |
| RocketMQ | 5.x | 消息队列(必须):BPM 流程事件、ERP/MES/WMS 三端联动集成事件均经其投递 |
| XXL-Job Admin | 2.x | 定时任务调度中心:本地开发默认关闭可不部署,dev/生产环境需要 |
| Nacos | 2.x | 仅微服务模式需要,单体模式不需要 |
二、获取代码
根据购买情况,代码仓库分两类:
2.1 全套用户:直接使用全量工程(最简单)
购买了全部模块的用户,会获得 pointlion-cloud-package-all 全量交付工程,前后端代码已经合并完毕,无需任何整合操作,可直接进入第三步。
git clone <您的全量工程地址> pointlion-cloud-all工程结构:
pointlion-cloud-package-all/
├── pointlion-cloud/ # 后端全套(根 pom + 全部模块)
│ ├── pointlion-server/ # 单体启动模块(本地运行只需关注它)
│ ├── pointlion-module-*/ # 各业务模块
│ └── pom.xml # 根 pom(已包含全部模块)
└── pointlion-cloud-ui/ # 前端全套(含全部业务 api/views)2.2 部分模块用户:底座工程 + 业务工程合并
只购买了部分模块的用户,会获得:
pointlion-cloud-public:公共底座工程(后端公共模块 + 前端底座,不含业务模块)pointlion-cloud-<业务key>:每个购买的业务一个工程(如pointlion-cloud-oa、pointlion-cloud-ct)
业务工程结构约定:
pointlion-cloud-<key>/ # 例如 pointlion-cloud-ct
├── pointlion-module-<key>/ # 后端业务模块(api/server 子模块)
├── 前端/
│ ├── api/<key>/ # 前端 API 定义
│ └── views/<key>/ # 前端页面
└── 数据库/ # 该模块的数据库脚本(需手动导入)合并步骤(以 CT 合同模块为例)
- 检出两个工程:
git clone <底座工程地址> pointlion-cloud
cd pointlion-cloud # 底座后端,注意 public 工程的后端在 pointlion-cloud 子目录下
git clone <业务工程地址> temp-ct- 复制后端业务模块到底座后端:
cp -r temp-ct/pointlion-module-ct pointlion-cloud/- 在后端根
pom.xml的<modules>中取消对应模块的注释(没有则添加):
<modules>
<!-- 底座公共模块(已有) -->
<module>pointlion-dependencies</module>
<module>pointlion-gateway</module>
<module>pointlion-framework</module>
<module>pointlion-server</module>
<module>pointlion-module-system</module>
<module>pointlion-module-infra</module>
<module>pointlion-module-bd</module>
<module>pointlion-module-bpm</module>
<!-- 已购买的业务模块(把注释去掉,或手工添加) -->
<module>pointlion-module-ct</module>
</modules>- 复制前端 api / views 到前端工程:
# 前端底座位于 public 工程:pointlion-cloud-public/pointlion-cloud-ui
cp -r temp-ct/前端/api/ct pointlion-cloud-ui/src/api/
cp -r temp-ct/前端/views/ct pointlion-cloud-ui/src/views/- 导入数据库脚本(见第三步)。
说明:
application*.yaml等配置文件不在代码同步范围内,底座工程自带默认配置,按第四步修改即可。
三、初始化数据库
# 1. 创建数据库
mysql -u root -p
CREATE DATABASE pointlion CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 2. 导入底座数据库脚本(位于底座工程数据库脚本目录)
mysql -u root -p pointlion < <底座SQL脚本>.sql
# 3. 部分模块用户:逐个导入业务工程的 数据库/ 目录下的脚本
mysql -u root -p pointlion < temp-ct/数据库/<CT模块SQL脚本>.sql四、后端运行(单体模式)
4.1 启用业务模块
单体模式通过 pointlion-server 模块聚合所有业务模块。打开:
pointlion-cloud/pointlion-server/pom.xml找到 <dependencies> 中的各 pointlion-module-*-server 依赖,将已购买模块的依赖取消注释(未购买的保持注释状态,否则编译失败):
<!-- 已启用:底座必备 -->
<dependency>
<groupId>com.pointlion.cloud</groupId>
<artifactId>pointlion-module-system-server</artifactId>
<version>${revision}</version>
</dependency>
<!-- 已购买的业务模块:取消注释即可启用 -->
<dependency>
<groupId>com.pointlion.cloud</groupId>
<artifactId>pointlion-module-ct-server</artifactId>
<version>${revision}</version>
</dependency>
<!-- 未购买的模块:保持注释状态 -->
<!--
<dependency>
<groupId>com.pointlion.cloud</groupId>
<artifactId>pointlion-module-fin-server</artifactId>
<version>${revision}</version>
</dependency>
-->同时确认根 pom.xml 的 <modules> 中包含对应模块(见 2.2 第 3 步)。
底座必备模块:
system(系统管理)、infra(基础设施)、bd(基础数据)、bpm(工作流,OA/HRM 等审批类模块依赖它)。
4.2 修改配置文件
配置文件位于 pointlion-server/src/main/resources/:
| 文件 | 用途 |
|---|---|
application.yaml | 主配置(默认 spring.profiles.active=local,已禁用 Nacos,单体模式无需改动) |
application-local.yaml | 本地开发环境配置(默认激活) |
application-dev.yaml | dev 环境配置(Docker 部署默认使用) |
修改 application-local.yaml 中的 MySQL、Redis 与 RocketMQ 连接:
spring:
datasource:
dynamic:
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/pointlion?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
username: root
password: your_mysql_password
redis:
host: 127.0.0.1
port: 6379
database: 0
password: your_redis_password # 无密码可留空
# 消息队列(必须):BPM 流程事件与三端联动集成事件经其投递
rocketmq:
name-server: 127.0.0.1:9876 # RocketMQ NameServer 地址
# 定时任务调度中心:本地开发默认关闭,无需部署 XXL-Job Admin
xxl:
job:
enabled: false # 本地默认 false;需要对接调度中心时置 true 并填写下方地址
admin:
addresses: http://127.0.0.1:8080/xxl-job-admin单体模式不需要配置 Nacos:
application.yaml中已默认设置spring.cloud.nacos.discovery.enabled=false与spring.cloud.nacos.config.enabled=false。
4.3 IDEA 启动(推荐开发环境)
- 用 IDEA 打开后端工程,等待 Maven 依赖下载完成
- 找到启动类:
pointlion-server/src/main/java/com/pointlion/cloud/server/PointlionServerApplication.java - 右键 → Run,控制台输出
Started PointlionServerApplication in xx seconds即成功 - 服务地址:
http://127.0.0.1:48080,接口文档:http://127.0.0.1:48080/swagger-ui
4.4 命令行打包并启动
单体打包命令(重要,必须加 -Pstandalone-package):
cd pointlion-cloud
mvn package -am -pl pointlion-server -Dmaven.test.skip=true -Pstandalone-package参数说明:
| 参数 | 作用 |
|---|---|
-pl pointlion-server | 只打包单体启动模块 |
-am | 连同其依赖的全部模块一起构建 |
-Pstandalone-package | 跳过各子模块单独打 Jar,只保留 server 聚合包,显著减小产物体积 |
-Dmaven.test.skip=true | 跳过测试 |
产物:pointlion-server/target/pointlion-server.jar
# 启动(local 环境)
java -jar pointlion-server/target/pointlion-server.jar
# 或指定环境
java -jar pointlion-server/target/pointlion-server.jar --spring.profiles.active=dev五、后端运行(微服务模式,可选)
微服务模式将各模块作为独立服务部署,必须先启动 Nacos:
- 启动 Nacos(
http://nacos-host:8848/nacos,默认账号密码nacos/nacos) - 修改各模块
application-*.yaml中的 Nacos 地址,并开启注册发现 - 按顺序启动:bd → infra → system → gateway → 各业务模块,全部通过网关
48080端口访问 - 各模块独立打包:
mvn package -DskipTests,产物在各模块target/目录
除非有独立扩容、灰度发布等需求,一般交付场景使用单体模式即可。
六、前端运行
cd pointlion-cloud-ui
# 1. 安装依赖(建议配置淘宝镜像)
npm config set registry https://registry.npmmirror.com
npm install -g pnpm
pnpm install
# 2. 启动开发服务
pnpm dev启动成功后访问 http://localhost:80(端口见控制台输出),默认账号:
账号:admin
密码:admin123开发环境的后端地址配置在
.env.local的VITE_BASE_URL中,默认指向http://localhost:48080,按实际后端地址修改。
七、移动端运行(可选)
移动端工程 pointlion-cloud-app(uniapp 多端:App / 小程序 / H5):
- 使用 HBuilderX 导入工程
- 配置
env/目录下的环境文件(服务器地址、AppID 等,工程内不含该目录,需按文档自行创建) - H5 端:
pnpm install && pnpm dev:h5;小程序端:HBuilderX 运行到微信开发者工具
八、常见问题
Q1: 后端启动报某个模块类找不到 / 接口 404?
A: 该业务模块未启用。检查两处:
pointlion-server/pom.xml中对应pointlion-module-*-server依赖是否已取消注释- 根
pom.xml的<modules>是否包含该模块
Q2: Maven 构建失败,提示找不到某个模块?
A: 未购买/未合并的模块仍被引用。把根 pom.xml 与 pointlion-server/pom.xml 中未购买模块的引用注释掉。
Q3: 数据库连接失败?
A: 检查 MySQL 是否启动、账号密码是否正确、库是否已创建、application-local.yaml 连接串是否正确。可用 mysql -h 127.0.0.1 -u root -p 先验证连通性。
Q4: Redis 连接失败?
A: 用 redis-cli ping 验证;有密码时确认 spring.redis.password 已填写。
Q5: 前端页面空白 / 请求报错?
A:
- 确认后端 48080 已启动
- 检查
.env.local的VITE_BASE_URL是否指向正确后端地址 - 浏览器控制台查看是否有跨域报错(开发模式由 vite 代理处理,一般无需额外配置)
Q6: 单体模式还需要安装 Nacos 吗?
A: 不需要。pointlion-server 的主配置已禁用 Nacos 注册与配置中心,只需 MySQL、Redis 与 RocketMQ;XXL-Job 调度中心本地默认关闭(xxl.job.enabled: false),可不部署。
Q7: 打包出来的 Jar 特别大 / 打包特别慢?
A: 确认使用了 -Pstandalone-package 参数(见 4.4),该 profile 会跳过各子模块的独立 Jar 打包。
Q8: 前端新增了模块页面但菜单里看不到?
A: 前端 api/<key>、views/<key> 目录是否复制到位;数据库中是否导入了该模块的菜单 SQL;重新登录或清除浏览器缓存后刷新。
下一步
- 生产环境部署请看:部署手册
- 技术架构说明:架构文档
- 在线演示:http://admin.dianshixinxi.com:90
技术支持
- 邮箱: 439635374@qq.com
- 官网: www.dianshixinxi.com
- 代码仓库: http://admin.dianshixinxi.com:666/
