mirror of
https://gitee.com/myxzgzs/boyue_jnpf.git
synced 2025-08-08 15:22:43 +08:00
296 lines
10 KiB
Markdown
296 lines
10 KiB
Markdown
![]() |
> 特别说明:源码、JDK、数据库、Redis等安装或存放路径禁止包含中文、空格、特殊字符等
|
|||
|
|
|||
|
## 一 环境要求
|
|||
|
|
|||
|
### 1.1 开发环境
|
|||
|
|
|||
|
| 类目 | 版本说明或建议 |
|
|||
|
| --- |------------------------|
|
|||
|
| 硬件 | 开发电脑建议使用I3及以上CPU,16G及以上内存 |
|
|||
|
| 操作系统 | Windows 10/11,MacOS |
|
|||
|
| JDK | 默认使用JDK 21,如需要切换JDK 8/11/17版本请参考文档调整代码,推荐使用 `OpenJDK`,如 `Liberica JDK`、`Eclipse Temurin`、`Alibaba Dragonwell`、`BiSheng`等发行版;|
|
|||
|
| Maven | 依赖管理工具,推荐使用 `3.6.3` 及以上版本 |
|
|||
|
| 数据库 | 兼容 `MySQL 5.7.x/8.x`、`SQLServer 2012+`、`Oracle 11g`、`PostgreSQL 12+`、`达梦数据库(DM8)`、`人大金仓数据库(KingbaseES_V8R6)` |
|
|||
|
| IDE | 代码集成开发环境,推荐使用 `IDEA2024` 及以上版本,兼容 `Eclipse`、 `Spring Tool Suite` 等IDE工具 |
|
|||
|
|
|||
|
### 1.2 运行环境
|
|||
|
|
|||
|
> 适用于测试或生产环境
|
|||
|
|
|||
|
| 类目 | 版本说明或建议 |
|
|||
|
| --- |-----------------------------------------------|
|
|||
|
| 服务器配置 | 建议至少在 4C/16G/50G的机器配置下运行; |
|
|||
|
| 操作系统 | 建议使用 `Windows Server 2019` 及以上版本或主流 `Linux` 发行版本,推荐使用 `Linux` 环境;兼容 `统信UOS`,`OpenEuler`,`麒麟服务器版` 等信创环境; |
|
|||
|
| JRE | 默认使用JRE 21,如需要切换JRE 8、11、17版本请参考文档调整代码;推荐使用 `OpenJDK`,如 `Liberica JDK`、`Eclipse Temurin`、`Alibaba Dragonwell`、`BiSheng`等发行版; |
|
|||
|
| 数据库 | 兼容 `MySQL 5.7.x/8.x`、`SQLServer 2012+`、`Oracle 11g`、`PostgreSQL 12+`、`达梦数据库(DM8)`、`人大金仓数据库(KingbaseES_V8R6)` |
|
|||
|
|
|||
|
## 二 关联项目
|
|||
|
|
|||
|
| 项目 | 分支 | 说明 |
|
|||
|
|--------------------|---------------|------------|
|
|||
|
| jnpf-workflow-core | v1.0.0-stable | 流程引擎基础依赖 |
|
|||
|
|
|||
|
## 三 Maven私服配置
|
|||
|
|
|||
|
> Apache Maven 依赖管理工具,推荐使用 `3.6.3` 及以上版本<br>解决以下依赖无法从公共Maven仓库下载的问题
|
|||
|
|
|||
|
打开Maven安装目录中的 `conf/settings.xml` 文件,<br>
|
|||
|
在 `<servers></servers>` 中添加如下内容
|
|||
|
|
|||
|
```xml
|
|||
|
<server>
|
|||
|
<id>maven-releases</id>
|
|||
|
<username>jnpf-user</username>
|
|||
|
<password>HLrQ0MA%S1nE</password>
|
|||
|
</server>
|
|||
|
```
|
|||
|
|
|||
|
在 `<mirrors></mirrors>` 中添加
|
|||
|
|
|||
|
```xml
|
|||
|
<mirror>
|
|||
|
<id>maven-releases</id>
|
|||
|
<mirrorOf>*</mirrorOf>
|
|||
|
<name>maven-releases</name>
|
|||
|
<url>https://repository.jnpfsoft.com/repository/maven-public/</url>
|
|||
|
</mirror>
|
|||
|
```
|
|||
|
|
|||
|
## 四 开发环境
|
|||
|
|
|||
|
### 4.1 导入数据库脚本
|
|||
|
|
|||
|
> 以 MySQL数据库 为例<br>字符集:utf8mb4<br/>排序规则:utf8mb4_general_ci
|
|||
|
|
|||
|
在MySQL创建 `jnpf_flow` 数据库,并将 `jnpf-database/MySQL/jnpf_flow_init.sql` 导入;
|
|||
|
|
|||
|
### 4.2 导入依赖
|
|||
|
|
|||
|
详见 `jnpf-workflow-core` 项目中的 `README.md` 文档说明
|
|||
|
|
|||
|
### 4.3 项目配置
|
|||
|
|
|||
|
打开编辑 `jnpf-workflow-admin/src/main/resources/application.yml`
|
|||
|
|
|||
|
#### 4.3.1 指定环境配置
|
|||
|
|
|||
|
环境说明:
|
|||
|
|
|||
|
- `application-dev.yml` 开发环境(默认)
|
|||
|
- `application-test.yml` 测试环境
|
|||
|
- `application-preview.yml` 预发布环境
|
|||
|
- `application-prod.yml` 生产环境
|
|||
|
|
|||
|
> 以开发环境为例,根据实际需求修改
|
|||
|
|
|||
|
```yaml
|
|||
|
# application.yml第 6 行,可选值:dev(开发环境-默认)、test(测试环境)、preview(预生产)、prod(生产环境)
|
|||
|
active: dev
|
|||
|
```
|
|||
|
|
|||
|
#### 4.3.2 调整运行端口
|
|||
|
> 根据实际需求调整
|
|||
|
|
|||
|
打开编辑 `jnpf-workflow-admin/src/main/resources/application-dev.yml`(第 2 行)
|
|||
|
|
|||
|
```yaml
|
|||
|
port: 31000 # 默认运行端口
|
|||
|
```
|
|||
|
|
|||
|
#### 4.3.3 数据库配置示例
|
|||
|
|
|||
|
打开编辑 `jnpf-workflow-admin/src/main/resources/application-dev.yml`,修改以下配置
|
|||
|
|
|||
|
> 注意:
|
|||
|
> - 若使用 `Oracle` 或 `达梦` 数据库必需配置模式名称
|
|||
|
> - 若使用 `PostgreSQL` 和 `人大金仓KingbaseES` 数据库, 默认public模式无需配置模式名称, 若指定模式需要配置模式名称
|
|||
|
> - 若使用 `MySQL` 和 `SQLServer` 无需配置模式名称
|
|||
|
|
|||
|
##### 4.3.3.1 MySQL数据库
|
|||
|
|
|||
|
```yaml
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
|||
|
type: com.mysql.cj.jdbc.MysqlDataSource
|
|||
|
url: jdbc:mysql://127.0.0.1:3306/jnpf_flow?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&autoReconnect=true&nullCatalogMeansCurrent=true
|
|||
|
username: dbuser
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
##### 4.3.3.2 SQLServer数据库
|
|||
|
|
|||
|
```yaml
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
|||
|
type: com.microsoft.sqlserver.jdbc.SQLServerDataSource
|
|||
|
url: jdbc:sqlserver://127.0.0.1:1433;databaseName=jnpf_flow;trustServerCertificate=true
|
|||
|
username: dbuser
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
##### 4.3.3.3 Oracle数据库
|
|||
|
> 必需配置模式名称
|
|||
|
|
|||
|
```yaml
|
|||
|
flowable:
|
|||
|
database-schema: JNPF_FLOW
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: oracle.jdbc.OracleDriver
|
|||
|
type: oracle.jdbc.datasource.impl.OracleDataSource
|
|||
|
url: jdbc:oracle:thin:@127.0.0.1:1521:ORCL
|
|||
|
username: JNPF_FLOW
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
##### 4.3.3.4 PostgreSQL数据库
|
|||
|
|
|||
|
**若使用默认 `public` 模式**
|
|||
|
|
|||
|
```yaml
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: org.postgresql.Driver
|
|||
|
type: org.postgresql.ds.PGSimpleDataSource
|
|||
|
url: jdbc:postgresql://127.0.0.1:5432/jnpf_flow
|
|||
|
username: dbuser
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
**若使用其他模式**
|
|||
|
|
|||
|
```yaml
|
|||
|
flowable:
|
|||
|
database-schema: jnpf_flow
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: org.postgresql.Driver
|
|||
|
type: org.postgresql.ds.PGSimpleDataSource
|
|||
|
url: jdbc:postgresql://127.0.0.1:5432/jnpf_flow
|
|||
|
username: dbuser
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
##### 4.3.3.5 达梦dm8数据库
|
|||
|
> 必需配置模式名称,连接后面需要添加参数 ?compatibleMode=oracle
|
|||
|
|
|||
|
```yaml
|
|||
|
flowable:
|
|||
|
database-schema: JNPF_FLOW
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: dm.jdbc.driver.DmDriver
|
|||
|
type: dm.jdbc.driver.DmdbDataSource
|
|||
|
url: jdbc:dm://127.0.0.1:5236/JNPF_FLOW?compatibleMode=oracle
|
|||
|
username: dbuser
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
##### 4.3.3.6 人大金仓KingbaseES数据库
|
|||
|
|
|||
|
**若使用默认 `public` 模式**
|
|||
|
|
|||
|
```yaml
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: org.postgresql.Driver
|
|||
|
type: org.postgresql.ds.PGSimpleDataSource
|
|||
|
url: jdbc:postgresql://127.0.0.1:5432/jnpf_flow
|
|||
|
username: dbuser
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
**若使用其他模式**
|
|||
|
|
|||
|
```yaml
|
|||
|
flowable:
|
|||
|
database-schema: jnpf_flow
|
|||
|
spring:
|
|||
|
datasource:
|
|||
|
driver-class-name: org.postgresql.Driver
|
|||
|
type: org.postgresql.ds.PGSimpleDataSource
|
|||
|
url: jdbc:postgresql://127.0.0.1:5432/jnpf_flow
|
|||
|
username: dbuser
|
|||
|
password: dbpasswd
|
|||
|
```
|
|||
|
|
|||
|
### 4.4 执行调试或运行
|
|||
|
|
|||
|
#### 4.4.1 `jnpf-workflow-core` 项目未使用加密
|
|||
|
|
|||
|
- 在IDEA中, 展开右侧 `Maven` 中 `Profiles` 去除勾选 `encrypted` 选项, 再点击 Maven `刷新` 图标刷新Maven
|
|||
|
- 找到 `jnpf-workflow-admin/src/main/java/jnpf/JnpfFlowableApplication.java`,右击运行即可。
|
|||
|
|
|||
|
若使用JDK9及以上版本,在IDEA中,打开 `Edit Configurations` VM启动参数添加如下参数:
|
|||
|
|
|||
|
```bash
|
|||
|
--add-opens java.base/java.lang=ALL-UNNAMED
|
|||
|
```
|
|||
|
|
|||
|
#### 4.4.2 `jnpf-workflow-core` 项目使用加密
|
|||
|
|
|||
|
- 在IDEA中,展开右侧 `Maven` 中 `Profiles` 勾选 `encrypted` 选项, 再点击Maven `刷新` 图标刷新Maven
|
|||
|
- 在IDEA中,双击右侧 `Maven` 中 `jnpf-workflow` > `clean` 将会自动安装加密打包插件, 并创建创建`jnpf-workflow-admin/target/copylib` 复制依赖包用于下一步运行
|
|||
|
|
|||
|
**参数说明**:
|
|||
|
|
|||
|
```bash
|
|||
|
# 打开项目中`jnpf-workflow-admin/target/copylib` 目录, 复制Jar包 `jnpf-workflow-common-版本号.jar` 的文件名
|
|||
|
-javaagent:项目存放路径/jnpf-workflow-admin/target/copylib/jnpf-workflow-common-当前版本号.jar(上面复制的文件名)="decryptProjectPathPrefix=jnpf-workflow-common___jnpf-workflow-flowable"
|
|||
|
```
|
|||
|
|
|||
|
- 在IDEA中,打开 `Edit Configurations` VM启动参数添加如下参数
|
|||
|
|
|||
|
若使用 JDK8 运行,需要替换下方命令示例中的Jar包路径
|
|||
|
|
|||
|
``` bash
|
|||
|
-XX:+DisableAttachMechanism
|
|||
|
-javaagent:D:/Projects/IdeaProjects/jnpf-workflow-boot/jnpf-workflow-admin/target/copylib/jnpf-workflow-common-1.0.0-RELEASE.jar="decryptProjectPathPrefix=jnpf-workflow-common___jnpf-workflow-flowable"
|
|||
|
```
|
|||
|
|
|||
|
若使用JDK 9及以上版本,需要替换下方命令示例中的Jar包路径
|
|||
|
|
|||
|
``` bash
|
|||
|
--add-opens java.base/java.lang=ALL-UNNAMED
|
|||
|
-XX:+DisableAttachMechanism
|
|||
|
-javaagent:D:/Projects/IdeaProjects/jnpf-workflow-boot/jnpf-workflow-admin/target/copylib/jnpf-workflow-common-1.0.0-RELEASE.jar="decryptProjectPathPrefix=jnpf-workflow-common___jnpf-workflow-flowable"
|
|||
|
```
|
|||
|
|
|||
|
### 4.5 专业版用户
|
|||
|
> 专业版用户无 `jnpf-workflow-core` 项目
|
|||
|
|
|||
|
若使用 `JDK 8/11` 开发
|
|||
|
|
|||
|
- 首先全局搜索 `jakarta.` 批量替换为 `javax.`,
|
|||
|
- 在本项目根目录打开 `pom.xml` 文件,注释第 92 行,解除注释第 94 行;
|
|||
|
|
|||
|
## 五 项目发布
|
|||
|
|
|||
|
### 5.1 `jnpf-workflow-core` 项目未使用加密
|
|||
|
|
|||
|
- 在IDEA中, 展开右侧 `Maven` 中 `Profiles` 去除勾选 `encrypted` 选项, 再点击Maven `刷新` 图标刷新Maven
|
|||
|
- 在IDEA中,双击右侧Maven中 `jnpf-workflow` > `Lifecycle` > `clean` 清理项目
|
|||
|
- 在IDEA中,双击右侧Maven中 `jnpf-workflow` > `Lifecycle` > `package` 打包项目
|
|||
|
- 打开 `jnpf-workflow/jnpf-workflow-admin/target`,将 `jnpf-workflow-admin-1.0.0-RELEASE.jar` 上传至服务器
|
|||
|
|
|||
|
### 5.2 `jnpf-workflow-core` 项目使用加密
|
|||
|
- 在IDEA中, 展开右侧 `Maven` 中 `Profiles` 勾选 `encrypted` 选项, 再点击Maven `刷新` 图标刷新Maven
|
|||
|
- 在IDEA中,双击右侧 `Maven` > `jnpf-workflow` > `clean` 将会自动安装加密打包插件
|
|||
|
- 在IDEA中,双击右侧 `Maven` > `jnpf-workflow` > `Lifecycle` > `package` 打包项目
|
|||
|
- 打开 `jnpf-workflow/jnpf-workflow-admin/target`,将 `jnpf-workflow-admin-1.0.0-RELEASE.jar` 上传至服务器
|
|||
|
- 启动命令
|
|||
|
|
|||
|
若使用 JDK/JRE 8 运行
|
|||
|
|
|||
|
```bash
|
|||
|
java -javaagent:./jnpf-workflow-admin-1.0.0-RELEASE.jar -XX:+DisableAttachMechanism -jar jnpf-workflow-admin-1.0.0-RELEASE.jar
|
|||
|
```
|
|||
|
|
|||
|
若使用 JDK/JRE 9及以上版本运行
|
|||
|
|
|||
|
```bash
|
|||
|
java -javaagent:./jnpf-workflow-admin-1.0.0-RELEASE.jar --add-opens java.base/java.lang=ALL-UNNAMED -XX:+DisableAttachMechanism -jar jnpf-workflow-admin-1.0.0-RELEASE.jar
|
|||
|
```
|