成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

手把手教大家編譯 flowable 源碼

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

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

1. 下載源碼

這個(gè)簡(jiǎn)單,大家直接從 GitHub 上將源碼 clone 下來即可:

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

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

圖片

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

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

圖片

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

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

圖片

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

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

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

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

圖片

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

圖片

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

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

圖片

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

3. 啟動(dòng) flowable-ui

接下來,我們就可以啟動(dòng) flowable-ui 這個(gè)工程了。

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

圖片

這個(gè)直接啟動(dòng)即可。

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

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

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

圖片

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

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

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

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

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

新建四個(gè)用戶:

圖片

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

圖片

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

步驟如下:

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

圖片

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

圖片

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

圖片

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

圖片

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

圖片

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

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

圖片

可以看到,兩個(gè)用戶組都在。

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

圖片

松哥在之前文章中給大家演示的所有關(guān)于 flowable-ui 的功能,涉及到的數(shù)據(jù)存儲(chǔ),我們現(xiàn)在都可以在連接上 H2 數(shù)據(jù)庫(kù)之后進(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

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

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

4. 連接 MySQL

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

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

然后注釋掉 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ù)庫(kù)驅(qū)動(dòng),如下:

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

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

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

圖片

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

圖片

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

5. 接口分析

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

我舉個(gè)例子,比如說我們想新建一個(gè)用戶,那么我們?cè)谇岸隧撁妫蜷_瀏覽器 DEBUG 窗口,觀察添加用戶的時(shí)候操作的接口,如下:

圖片

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

圖片

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

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

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

6. 小結(jié)

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

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

2022-09-19 10:48:14

Spring對(duì)象項(xiàng)目

2009-11-06 10:44:31

Visual Stud

2020-11-10 09:00:00

JavaMule ESB開發(fā)

2009-10-21 10:47:03

Siliverligh

2010-07-07 10:24:46

Python多線程

2010-08-18 09:15:45

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

2023-06-30 12:58:55

ChatGPT-4人工智能工具

2020-09-04 10:14:02

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

2021-02-04 11:53:49

Linuxplatform總線

2020-09-23 07:00:00

Selenium We架構(gòu)

2020-09-27 06:59:59

IO系統(tǒng)Linux

2020-02-21 19:54:09

HTTPS 配置手把手教

2010-09-02 10:50:17

時(shí)間同步服務(wù)器

2010-09-14 09:24:27

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

2010-08-26 09:24:59

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

2020-02-21 10:45:06

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

2010-04-02 16:51:09

虛擬機(jī)安裝linux

2023-03-27 00:06:12

2011-02-15 09:43:33

虛擬機(jī)

2011-01-10 14:41:26

點(diǎn)贊
收藏

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

主站蜘蛛池模板: 99久久久久久久久 | 少妇特黄a一区二区三区88av | 四虎最新视频 | 蜜桃日韩| 最新中文字幕在线 | 成年男女免费视频网站 | 91精品国产一区二区三区香蕉 | 91久久精品国产91久久性色tv | 国内在线视频 | h在线免费观看 | 久久久久久久久淑女av国产精品 | 国产亚洲欧美另类一区二区三区 | 国产精品久久久久久久久久久久冷 | 毛片一区二区三区 | 中文字幕一区二区三区日韩精品 | 黑人巨大精品欧美一区二区免费 | 亚洲激精日韩激精欧美精品 | 亚洲男人的天堂网站 | 国产成人精品一区二区三区网站观看 | 久久这里只有精品首页 | 国产精品国产精品国产专区不卡 | 欧美三级电影在线播放 | 欧美一级片在线看 | 久久综合九色综合欧美狠狠 | 精品国产不卡一区二区三区 | 成人深夜福利网站 | 少妇黄色 | 久久精品国产一区二区三区不卡 | 欧美日韩国产不卡 | 日韩欧美国产成人一区二区 | 一区二区三区在线电影 | 国产日韩久久 | 久久久国产精品一区 | 国产在线观 | 99精品一区二区 | 激情综合五月 | 久久久久久一区 | 欧美精品国产一区二区 | 天天看天天爽 | 亚洲精品乱码久久久久久蜜桃91 | www久久av |