流程主项目

zhaojinyu 55c4a7913d first commit 10 ماه پیش
.idea 55c4a7913d first commit 10 ماه پیش
allatori 55c4a7913d first commit 10 ماه پیش
jnpf-workflow-admin 55c4a7913d first commit 10 ماه پیش
log 55c4a7913d first commit 10 ماه پیش
Dockerfile 55c4a7913d first commit 10 ماه پیش
README.md 55c4a7913d first commit 10 ماه پیش
pom.xml 55c4a7913d first commit 10 ماه پیش

README.md

特别说明:源码、JDK、数据库、Redis等安装或存放路径禁止包含中文、空格、特殊字符等

一 环境要求

1.1 开发环境

类目 版本说明或建议
硬件 开发电脑建议使用I3及以上CPU,16G及以上内存
操作系统 Windows 10/11,MacOS
JDK 默认使用JDK 21,兼容JDK 8/11、JDK17,推荐使用 OpenJDK,如 Liberica JDKEclipse TemurinAlibaba DragonwellBiSheng等发行版;
Maven 依赖管理工具,推荐使用 3.6.3 及以上版本
数据库 兼容 MySQL 5.7.x/8.xSQLServer 2012+Oracle 11gPostgreSQL 12+达梦数据库(DM8)人大金仓数据库(KingbaseES_V8R6)
IDE 代码集成开发环境,推荐使用 IDEA2024 及以上版本,兼容 EclipseSpring Tool Suite 等IDE工具

1.2 运行环境

适用于测试或生产环境

类目 版本说明或建议
服务器配置 建议至少在 4C/16G/50G的机器配置下运行;
操作系统 建议使用 Windows Server 2019 及以上版本或主流 Linux 发行版本,推荐使用 Linux 环境;兼容 统信UOSOpenEuler麒麟服务器版 等信创环境;
JRE 默认使用JRE 21,兼容JRE 8/11、JRE17;推荐使用 OpenJDK,如 Liberica JDKEclipse TemurinAlibaba DragonwellBiSheng等发行版;
数据库 兼容 MySQL 5.7.x/8.xSQLServer 2012+Oracle 11gPostgreSQL 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模式无需配置模式名称, 若指定模式需要配置模式名称
  • 若使用 MySQLSQLServer 无需配置模式名称
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中, 展开右侧 MavenProfiles 去除勾选 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中,展开右侧 MavenProfiles 勾选 encrypted 选项, 再点击Maven 刷新 图标刷新Maven
  • 在IDEA中,双击右侧 Mavenjnpf-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中, 展开右侧 MavenProfiles 去除勾选 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中, 展开右侧 MavenProfiles 勾选 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