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

手把手教大家編譯 flowable 源碼

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

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

1. 下載源碼

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

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

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

圖片

2. IDEA 打開項目

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

圖片

松哥親測,master 分支上的代碼有點問題,所以建議大家切換到一個穩(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ā)用的,但是感覺實際作用有限,我們平時開發(fā)也很少導入這兩個配置,大家了解即可。
  • k8s:看目錄就知道,這個里邊放的是 flowable 支持 K8s 的一些腳本和配置。
  • modules:flowable 中的所有核心功能代碼都在這個里邊了。
  • qa:這個里邊是 flowable 各種各樣的配置模版,不過我們現(xiàn)在基本上都是 Spring Boot 開發(fā),很多時候并不需要手動再去配置什么,都是直接上來寫業(yè)務(wù)就行了,所以這些配置模版大家了解下即可。
  • scripts:這個目錄下放了一些常用的腳本,例如執(zhí)行 build-all.sh 腳本用來構(gòu)建項目。
  • tooling:這個目錄中的內(nèi)容給出了一個單元測試的模版。
  • LICENSE:開源協(xié)議等。
  • README.md:介紹文檔。

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

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

圖片

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

圖片

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

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

圖片

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

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 一樣了,該咋用咋用.

這里默認使用的是 H2 數(shù)據(jù)庫,H2 是一個 Java 編寫的關(guān)系型數(shù)據(jù)庫,它可以被嵌入 Java 應(yīng)用程序中使用,或者作為一個單獨的數(shù)據(jù)庫服務(wù)器運行。這個 H2 數(shù)據(jù)庫有點類似于移動端的 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)當前用戶目錄下,在系統(tǒ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ù)庫連接工具進行連接了。

步驟如下:

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

圖片

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

圖片

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

圖片

點擊 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ù)庫之后進行查看。

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

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

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

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

4. 連接 MySQL

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

首先提前在數(shù)據(jù)庫中準備一個名為 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>

然后重啟項目即可。

當松哥添加 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 即可,如下圖:

圖片

然后重新啟動項目即可。

5. 接口分析

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

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

圖片

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

圖片

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

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

所以說,這個 flowable-ui 對我們來說其實是一個很好的學習 DEMO。

6. 小結(jié)

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

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

2022-09-19 10:48:14

Spring對象項目

2020-11-10 09:00:00

JavaMule ESB開發(fā)

2009-11-06 10:44:31

Visual Stud

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ū)動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

時間同步服務(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

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

2010-04-02 16:51:09

虛擬機安裝linux

2023-03-27 00:06:12

2011-02-15 09:43:33

虛擬機

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用
點贊
收藏

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

主站蜘蛛池模板: 午夜精品久久久久99蜜 | 日韩在线观看网站 | 欧美日韩福利视频 | 欧美日本韩国一区二区三区 | 成人无遮挡毛片免费看 | 一区二区av| 亚洲精选一区 | 国产精品1区2区3区 欧美 中文字幕 | 国产精品国产成人国产三级 | 欧美多人在线 | 男女视频在线观看网站 | 男人的天堂久久 | 成人精品鲁一区一区二区 | 久久这里只有精品首页 | 香蕉一区 | 久久午夜视频 | 四虎影院久久 | 免费成人高清在线视频 | 狠狠色综合久久丁香婷婷 | 91日日| 日韩色在线 | 日本不卡一区二区三区 | 欧美精品一区免费 | 久久男女视频 | 国产中文字幕网 | 国产高清一二三区 | 91一区二区| 欧美www在线观看 | 欧美亚洲国产一区二区三区 | 另类亚洲视频 | 在线观看免费黄色片 | 91久久久久久久久久久久久 | 亚洲视频中文字幕 | 亚洲香蕉 | 亚洲精品日韩在线 | 日韩国产一区二区 | 一区二区在线 | 狠狠干天天干 | 国产精品视频播放 | 欧美a级成人淫片免费看 | 欧美一区二区三区在线观看视频 |