偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

手把手教大家編譯 flowable 源碼

開發(fā) 前端
本文主要和小伙伴們分析了如何在本地將 flowable 源碼編譯跑起來,將來松哥還會有多篇文章,以 flowable-ui 為參考,來和大家分析 flowable 中的各種玩法。

今天松哥就來和大家聊一聊 flowable 源碼編譯,其實(shí)主要是和大家說說這里的幾個坑。

1. 下載源碼

這個簡單,大家直接從 GitHub 上將源碼 clone 下來即可:

git clone git@github.com:flowable/flowable-engine.git

這一步比較容易,大家應(yīng)該都不存在問題。

圖片

2. IDEA 打開項(xiàng)目

由于這個源碼也是一個 Maven 工程,所以接下來直接 IDEA 打開源碼即可。

圖片

松哥親測,master 分支上的代碼有點(diǎn)問題,所以建議大家切換到一個穩(wěn)定的版本上再去編譯。

官方目前在 GitHub 上發(fā)布的最新 release 版本是 6.7.2 這個版本,所以為了源碼編譯順利,接下來在右下角找到 6.7.2 這個版本,并切換:

圖片

切換完成之后,接下來我們要先來看看源碼中每個目錄都是干嘛的。

  • distro
  • docker:這個里邊放的是將 flowable 構(gòu)建成 docker 鏡像的腳本。
  • docs:這個是文檔。在docs/docusaurus/docs? 目錄下有官方已經(jīng)構(gòu)建好的現(xiàn)成的腳本,我們也可以執(zhí)行docs/userguide/src/zh_CN/form 等目錄下的腳本文件,構(gòu)建自己需要的文檔。一般來說不需要,直接看官方文檔就夠用了。
  • ide-settings:這個目錄下放的是 Eclipse 和 IDEA 中的配置文件,輔助開發(fā)用的,但是感覺實(shí)際作用有限,我們平時開發(fā)也很少導(dǎo)入這兩個配置,大家了解即可。
  • k8s:看目錄就知道,這個里邊放的是 flowable 支持 K8s 的一些腳本和配置。
  • modules:flowable 中的所有核心功能代碼都在這個里邊了。
  • qa:這個里邊是 flowable 各種各樣的配置模版,不過我們現(xiàn)在基本上都是 Spring Boot 開發(fā),很多時候并不需要手動再去配置什么,都是直接上來寫業(yè)務(wù)就行了,所以這些配置模版大家了解下即可。
  • scripts:這個目錄下放了一些常用的腳本,例如執(zhí)行 build-all.sh 腳本用來構(gòu)建項(xiàng)目。
  • tooling:這個目錄中的內(nèi)容給出了一個單元測試的模版。
  • LICENSE:開源協(xié)議等。
  • README.md:介紹文檔。

好了,整體上了解了之后,現(xiàn)在大家知道,modules 目錄才是核心。

不過,由于模塊較多,IDEA 不一定總是能夠識別出所有的 Maven 項(xiàng)目,如果一個項(xiàng)目的 pom.xml 是紅色而不是藍(lán)色,就說明 IDEA 沒能識別出來這個 Maven 項(xiàng)目,像下面這樣:

圖片

此時我們要打開這個 pom.xml 文件,然后鼠標(biāo)右鍵單擊,選擇 Add as Maven Project,如下:

圖片

使之成為一個正兒八經(jīng)的 Maven 工程。

最終的結(jié)果,就是確保所有 Maven 工程都是黑色的而不是灰色的,就表示沒有問題了,如下圖:

圖片

第二小節(jié)的工作看著很簡單,但是實(shí)際操作起來非常費(fèi)事,最大的原因還是網(wǎng)絡(luò)問題。Maven 經(jīng)常會下載失敗,所以需要大家反復(fù)多試,從阿里鏡像站切換到華為鏡像站,再切換回官方的鏡像站,反正就是反復(fù)重試,直到需要的依賴都下載成功。

3. 啟動 flowable-ui

接下來,我們就可以啟動 flowable-ui 這個工程了。

這個工程本質(zhì)上就是一個 Spring Boot 工程,所以關(guān)鍵是要大家找到啟動類,位置在 modules/flowable-ui/flowable-ui-app/src/main/java/org/flowable/ui/application/FlowableUiApplication.java:

圖片

這個直接啟動即可。

啟動之后就跟松哥之前給大家介紹的 Flowable-UI 一樣了,該咋用咋用.

這里默認(rèn)使用的是 H2 數(shù)據(jù)庫,H2 是一個 Java 編寫的關(guān)系型數(shù)據(jù)庫,它可以被嵌入 Java 應(yīng)用程序中使用,或者作為一個單獨(dú)的數(shù)據(jù)庫服務(wù)器運(yùn)行。這個 H2 數(shù)據(jù)庫有點(diǎn)類似于移動端的 SqlLite 數(shù)據(jù)庫。

我們打開 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件,可以看到關(guān)于 H2 數(shù)據(jù)庫的一些配置信息,如下:

圖片

從這個配置中可以看出來三個核心信息:

H2 數(shù)據(jù)庫將來會自動生成數(shù)據(jù)庫文件,文件位于系統(tǒng)當(dāng)前用戶目錄下,在系統(tǒng)當(dāng)前用戶目錄下會自動創(chuàng)建 flowable-db 文件夾,然后在該文件夾下創(chuàng)建 engine-db 文件,就是我們的數(shù)據(jù)庫文件了。

H2 數(shù)據(jù)庫的用戶名是 flowable。

H2 數(shù)據(jù)庫的用戶密碼是 flowable。

好了,現(xiàn)在我們在 flowable-ui 中,我們新建幾個用戶和組,如下:

新建四個用戶:

圖片

新建兩個用戶組,假設(shè) zhangsan 和 lisi 是主管,wangwu 和 zhaoliu 是經(jīng)理,如下:

圖片

創(chuàng)建完成之后,我們知道這些數(shù)據(jù)都是保存在 H2 數(shù)據(jù)庫中,像連接 MySQL 一樣,我們也可以連接 H2 數(shù)據(jù)庫,為了省事,我這里就直接使用 IDEA 中自帶的數(shù)據(jù)庫連接工具進(jìn)行連接了。

步驟如下:

首先點(diǎn)擊 Database,然后點(diǎn)擊 + 添加一個數(shù)據(jù)源,選擇 H2,如下:

圖片

數(shù)據(jù)庫連接類型選擇 URL only:

圖片

填入用戶名、密碼以及數(shù)據(jù)庫地址,這些信息都是從剛才的配置文件中拷貝進(jìn)來的,填完信息之后,會提示你下載數(shù)據(jù)庫驅(qū)動,直接點(diǎn)擊下載即可,然后點(diǎn)擊下方的 Test Connection 按鈕,進(jìn)行測試,看到如下內(nèi)容表示數(shù)據(jù)庫已經(jīng)連接上了。

圖片

點(diǎn)擊 OK,我們就可以看到數(shù)據(jù)庫的連接詳情了,如下:

圖片

關(guān)于每張表的作用,松哥之前都已經(jīng)寫過文章和大家介紹過了,現(xiàn)在我們就去 ACT_ID_USER 表去看一下有沒有剛剛創(chuàng)建的四個用戶信息:

圖片

可以看到,加上 admin 一共有五個用戶信息。

相同的道理,ACT_ID_GROUP 表中也可以看到我們創(chuàng)建的組信息:

圖片

可以看到,兩個用戶組都在。

在 ACT_ID_MEMBERSHIP 表中,我們可以看到用戶和用戶組之間的關(guān)聯(lián)關(guān)系:

圖片

松哥在之前文章中給大家演示的所有關(guān)于 flowable-ui 的功能,涉及到的數(shù)據(jù)存儲,我們現(xiàn)在都可以在連接上 H2 數(shù)據(jù)庫之后進(jìn)行查看。

既然說到了 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件,那么我也就順便多說兩句,flowable-ui 默認(rèn)的用戶名密碼是 admin/test,如果我們想要修改,則可以直接在該配置文件中修改如下幾行即可:

flowable.idm.app.admin.user-id=javaboy
flowable.idm.app.admin.password=123
flowable.idm.app.admin.first-name=江南一點(diǎn)雨
flowable.idm.app.admin.last-name=江南一點(diǎn)雨
flowable.idm.app.admin.email=test-admin@example-domain.tld

中文可能會亂碼,大家記得修改 properties 配置文件的編碼格式即可。

修改完成之后,記得先去系統(tǒng)當(dāng)前用戶目錄下刪除掉 flowable-db 文件夾(如果不刪除,則之前的用戶還在,這次的配置相當(dāng)于新添加了一個用戶),然后重啟系統(tǒng)即可,重啟之后,我們就可以以 javaboy/123 進(jìn)行登錄了。

4. 連接 MySQL

有時候我們還是希望能夠用上自己熟悉的 MySQL,這個也是支持的,還是通過修改 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件來實(shí)現(xiàn),具體做法如下:

首先提前在數(shù)據(jù)庫中準(zhǔn)備一個名為 flowable-ui 的空的數(shù)據(jù)庫。

然后注釋掉 modules/flowable-ui/flowable-ui-app/src/main/resources/flowable-default.properties 配置文件中 H2 的配置,打開 MySQL 的配置,如下:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/flowable-ui?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&nullCatalogMeansCurrent=true
spring.datasource.username=root
spring.datasource.password=123

最后,再在 modules/flowable-ui/flowable-ui-app/pom.xml 文件中加入 MySQL 數(shù)據(jù)庫驅(qū)動,如下:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

然后重啟項(xiàng)目即可。

當(dāng)松哥添加 MySQL 驅(qū)動的時候,發(fā)現(xiàn)官方已經(jīng)替我們考慮好了,MySQL 驅(qū)動提前在多環(huán)境中已經(jīng)配置好了,位置在 modules/flowable-ui/flowable-ui-app/pom.xml,如下圖:

圖片

所以我們也可以不用自己手動加驅(qū)動,直接在在 IDEA 的 Maven 中,選擇 profiles,去掉 h2mem,勾選上 mysql 即可,如下圖:

圖片

然后重新啟動項(xiàng)目即可。

5. 接口分析

有的小伙伴們可能說,松哥你這個搞的這么麻煩,我用 flowable-ui 直接 docker 安裝,多省事呀!那你就領(lǐng)會錯我的意思了,flowable-ui 這個功能我覺得是一個非常棒的 demo,基本上你能想到的 flowable 的功能這里都提供了,現(xiàn)在源碼都給你了,你想做啥功能照抄就行了。

我舉個例子,比如說我們想新建一個用戶,那么我們在前端頁面,打開瀏覽器 DEBUG 窗口,觀察添加用戶的時候操作的接口,如下:

圖片

我們發(fā)現(xiàn)添加用戶的接口是 /rest/admin/users(/idm-app 是模塊名稱,忽略之),現(xiàn)在,在源碼中我們來一個全文搜索,如下:

圖片

如果你想自己做一個用戶添加的功能,那么照抄不就行了。

其他啟動流程、認(rèn)領(lǐng)任務(wù)、完成任務(wù)等功能,都按照類似的方式,我們可以查看其代碼實(shí)現(xiàn)方式。

所以說,這個 flowable-ui 對我們來說其實(shí)是一個很好的學(xué)習(xí) DEMO。

6. 小結(jié)

好啦,本文主要和小伙伴們分析了如何在本地將 flowable 源碼編譯跑起來,將來松哥還會有多篇文章,以 flowable-ui 為參考,來和大家分析 flowable 中的各種玩法。

責(zé)任編輯:武曉燕 來源: 江南一點(diǎn)雨
相關(guān)推薦

2022-09-19 10:48:14

Spring對象項(xiàng)目

2009-11-06 10:44:31

Visual Stud

2020-11-10 09:00:00

JavaMule ESB開發(fā)

2010-07-07 10:24:46

Python多線程

2009-10-21 10:47:03

Siliverligh

2010-08-18 09:15:45

路由器網(wǎng)絡(luò)診斷

2021-02-04 11:53:49

Linuxplatform總線

2020-09-04 10:14:02

Linux驅(qū)動7內(nèi)核

2020-09-23 07:00:00

Selenium We架構(gòu)

2023-06-30 12:58:55

ChatGPT-4人工智能工具

2020-02-21 19:54:09

HTTPS 配置手把手教

2020-09-27 06:59:59

IO系統(tǒng)Linux

2010-09-14 09:24:27

家庭無線網(wǎng)絡(luò)

2010-09-02 10:50:17

時間同步服務(wù)器

2020-02-21 10:45:06

運(yùn)維架構(gòu)技術(shù)

2010-08-26 09:24:59

路由器網(wǎng)絡(luò)診斷

2010-04-02 16:51:09

虛擬機(jī)安裝linux

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機(jī)

2025-05-07 00:31:30

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號