10 KiB
特别说明:源码、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
及以上版本
解决以下依赖无法从公共Maven仓库下载的问题
打开Maven安装目录中的 conf/settings.xml
文件,
在 <servers></servers>
中添加如下内容
<server>
<id>maven-releases</id>
<username>jnpf-user</username>
<password>HLrQ0MA%S1nE</password>
</server>
在 <mirrors></mirrors>
中添加
<mirror>
<id>maven-releases</id>
<mirrorOf>*</mirrorOf>
<name>maven-releases</name>
<url>https://repository.jnpfsoft.com/repository/maven-public/</url>
</mirror>
四 开发环境
4.1 导入数据库脚本
以 MySQL数据库 为例
字符集:utf8mb4
排序规则: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
生产环境
以开发环境为例,根据实际需求修改
# application.yml第 6 行,可选值:dev(开发环境-默认)、test(测试环境)、preview(预生产)、prod(生产环境)
active: dev
4.3.2 调整运行端口
根据实际需求调整
打开编辑 jnpf-workflow-admin/src/main/resources/application-dev.yml
(第 2 行)
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数据库
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数据库
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数据库
必需配置模式名称
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
模式
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
若使用其他模式
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
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
模式
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
若使用其他模式
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启动参数添加如下参数:
--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
复制依赖包用于下一步运行
参数说明:
# 打开项目中`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包路径
-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包路径
--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 运行
java -javaagent:./jnpf-workflow-admin-1.0.0-RELEASE.jar -XX:+DisableAttachMechanism -jar jnpf-workflow-admin-1.0.0-RELEASE.jar
若使用 JDK/JRE 9及以上版本运行
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