手把手教大家编译 flowable 源码

网站建设3年前发布
42 0 0

今天松哥就来和大家聊一聊 flowable 源码编译,其实主要是和大家说说这里的几个坑。,这个简单,大家直接从 GitHub 上将源码 clone 下来即可:,这一步比较容易,大家应该都不存在问题。,20230306013628e71e03151dce828d84c6790d10c7f5ba6ff386634,由于这个源码也是一个 Maven 工程,所以接下来直接 IDEA 打开源码即可。,2023030601345267446ac363cf736c49303532419d1fdd974aff691,松哥亲测,master 分支上的代码有点问题,所以建议大家切换到一个稳定的版本上再去编译。,官方目前在 GitHub 上发布的最新 release 版本是 6.7.2 这个版本,所以为了源码编译顺利,接下来在右下角找到 6.7.2 这个版本,并切换:,20230306013453c7cde86361cbd0aaa266803baffbf522867a03593,切换完成之后,接下来我们要先来看看源码中每个目录都是干嘛的。,好了,整体上了解了之后,现在大家知道,modules 目录才是核心。,不过,由于模块较多,IDEA 不一定总是能够识别出所有的 Maven 项目,如果一个项目的 pom.xml 是红色而不是蓝色,就说明 IDEA 没能识别出来这个 Maven 项目,像下面这样:,20230306013452e7ed03699ec158f62e2939051187fdeb4ecc69244,此时我们要打开这个 pom.xml 文件,然后鼠标右键单击,选择 Add as Maven Project,如下:,2023030601345465de2be1508032ab2aa921118d73e3398b49f6876,使之成为一个正儿八经的 Maven 工程。,最终的结果,就是确保所有 Maven 工程都是黑色的而不是灰色的,就表示没有问题了,如下图:,20230306013454816bf3176eee40c361c590cf7dff89cfcc9005418,第二小节的工作看着很简单,但是实际操作起来非常费事,最大的原因还是网络问题。Maven 经常会下载失败,所以需要大家反复多试,从阿里镜像站切换到华为镜像站,再切换回官方的镜像站,反正就是反复重试,直到需要的依赖都下载成功。,接下来,我们就可以启动 flowable-ui 这个工程了。,这个工程本质上就是一个 Spring Boot 工程,所以关键是要大家找到启动类,位置在 modules/flowable-ui/flowable-ui-app/src/main/java/org/flowable/ui/application/FlowableUiApplication.java:,20230306013629b786c5c58c9b720d80e5009f82d560ca736a37172,这个直接启动即可。,启动之后就跟松哥之前给大家介绍的 Flowable-UI 一样了,该咋用咋用.,这里默认使用的是 H2 数据库,H2 是一个 Java 编写的关系型数据库,它可以被嵌入 Java 应用程序中使用,或者作为一个单独的数据库服务器运行。这个 H2 数据库有点类似于移动端的 SqlLite 数据库。,我们打开 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件,可以看到关于 H2 数据库的一些配置信息,如下:,2023030601345538ad07736ca4c80ec0433406a544e21ff266d5883,从这个配置中可以看出来三个核心信息:,H2 数据库将来会自动生成数据库文件,文件位于系统当前用户目录下,在系统当前用户目录下会自动创建 flowable-db 文件夹,然后在该文件夹下创建 engine-db 文件,就是我们的数据库文件了。,H2 数据库的用户名是 flowable。,H2 数据库的用户密码是 flowable。,好了,现在我们在 flowable-ui 中,我们新建几个用户和组,如下:,新建四个用户:,20230306013456543434459360fce43be754a5ac933ebee45d4f388,新建两个用户组,假设 zhangsan 和 lisi 是主管,wangwu 和 zhaoliu 是经理,如下:,2023030601345774bdca94764552a89b53505a56d3d878296676291,创建完成之后,我们知道这些数据都是保存在 H2 数据库中,像连接 MySQL 一样,我们也可以连接 H2 数据库,为了省事,我这里就直接使用 IDEA 中自带的数据库连接工具进行连接了。,步骤如下:,首先点击 Database,然后点击 + 添加一个数据源,选择 H2,如下:,202303060134575754226004d11d2e41f709a7d57be99f3b5e05656,数据库连接类型选择 URL only:,20230306013632a6602c7404cd79ae660307fd663b7fef32e318844,填入用户名、密码以及数据库地址,这些信息都是从刚才的配置文件中拷贝进来的,填完信息之后,会提示你下载数据库驱动,直接点击下载即可,然后点击下方的 Test Connection 按钮,进行测试,看到如下内容表示数据库已经连接上了。,20230306013702e212ef364cd3ef416ee253ebf3c3321f4dd3e4398,点击 OK,我们就可以看到数据库的连接详情了,如下:,2023030601350039e4bf994ea79cb462419866891f26eecbbb19292,关于每张表的作用,松哥之前都已经写过文章和大家介绍过了,现在我们就去 ACT_ID_USER 表去看一下有没有刚刚创建的四个用户信息:,20230306013459341b80d7138fd37a56f66124aea2c0f9d046d1760,可以看到,加上 admin 一共有五个用户信息。,相同的道理,ACT_ID_GROUP 表中也可以看到我们创建的组信息:,20230306013459c28658d2568b917b50b66386537f0b44976a5f869,可以看到,两个用户组都在。,在 ACT_ID_MEMBERSHIP 表中,我们可以看到用户和用户组之间的关联关系:,20230306013500171ff1f5850d9b01ea84349da23d1de898789c555,松哥在之前文章中给大家演示的所有关于 flowable-ui 的功能,涉及到的数据存储,我们现在都可以在连接上 H2 数据库之后进行查看。,既然说到了 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件,那么我也就顺便多说两句,flowable-ui 默认的用户名密码是 admin/test,如果我们想要修改,则可以直接在该配置文件中修改如下几行即可:,中文可能会乱码,大家记得修改 properties 配置文件的编码格式即可。,修改完成之后,记得先去系统当前用户目录下删除掉 flowable-db 文件夹(如果不删除,则之前的用户还在,这次的配置相当于新添加了一个用户),然后重启系统即可,重启之后,我们就可以以 javaboy/123 进行登录了。,有时候我们还是希望能够用上自己熟悉的 MySQL,这个也是支持的,还是通过修改 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件来实现,具体做法如下:,首先提前在数据库中准备一个名为 flowable-ui 的空的数据库。,然后注释掉 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件中 H2 的配置,打开 MySQL 的配置,如下:,最后,再在 modules/flowable-ui/flowable-ui-app/pom.xml 文件中加入 MySQL 数据库驱动,如下:,然后重启项目即可。,当松哥添加 MySQL 驱动的时候,发现官方已经替我们考虑好了,MySQL 驱动提前在多环境中已经配置好了,位置在 modules/flowable-ui/flowable-ui-app/pom.xml,如下图:,2023030601363363bcb58619cedda26a9456b66c0f2b31f488aa834,所以我们也可以不用自己手动加驱动,直接在在 IDEA 的 Maven 中,选择 profiles,去掉 h2mem,勾选上 mysql 即可,如下图:,2023030601350129982f381d309855ad1956420309ca8995e0cd336,然后重新启动项目即可。,有的小伙伴们可能说,松哥你这个搞的这么麻烦,我用 flowable-ui 直接 docker 安装,多省事呀!那你就领会错我的意思了,flowable-ui 这个功能我觉得是一个非常棒的 demo,基本上你能想到的 flowable 的功能这里都提供了,现在源码都给你了,你想做啥功能照抄就行了。,我举个例子,比如说我们想新建一个用户,那么我们在前端页面,打开浏览器 DEBUG 窗口,观察添加用户的时候操作的接口,如下:,20230306013634f386fe4174f70b16f5535600f0ed051058f575246,我们发现添加用户的接口是 /rest/admin/users(/idm-app 是模块名称,忽略之),现在,在源码中我们来一个全文搜索,如下:,2023030601350267ef44213d7fd3202b0893a763a040ee649596431,如果你想自己做一个用户添加的功能,那么照抄不就行了。,其他启动流程、认领任务、完成任务等功能,都按照类似的方式,我们可以查看其代码实现方式。,所以说,这个 flowable-ui 对我们来说其实是一个很好的学习 DEMO。,好啦,本文主要和小伙伴们分析了如何在本地将 flowable 源码编译跑起来,将来松哥还会有多篇文章,以 flowable-ui 为参考,来和大家分析 flowable 中的各种玩法。

© 版权声明

相关文章