1. 程式人生 > >Flowable深入淺出-8 Flowable-Modeler整合之Flowable-modeler原始碼編譯

Flowable深入淺出-8 Flowable-Modeler整合之Flowable-modeler原始碼編譯

8 Flowable-Modeler整合之Flowable-modeler原始碼編譯

背景

上一期我們介紹瞭如何編譯整個Flowable的原始碼,但是在某些情況下我們並不需要idm/cmmn等引擎,本次我們介紹如何只編譯完成Flowable的modeler,為某些需要只整合modeler的使用者提供基礎。

原始碼下載

參考上一篇文章完成原始碼的下載和配置,文章地址:https://blog.csdn.net/houyj1986/article/details/85725202


注意:配置環境期間不要修改POM檔案。

思路分析與目標

目的為了能夠完成modeler編譯,並且能夠除錯modeler,所有我們要去除所有不依賴的包,只新增modeler依賴的包,進入modeler的入口,完成啟動。

  1. 分析modeler
    modeler的工程如下:
    在這裡插入圖片描述
    下面有幾個子專案,我們檢視POM的預設模組配置位於982行,我們修改為只有這幾個專案
  2. 操作步驟 :一步步編譯,根據錯誤不停的新增依賴的工程
  3. 找到啟動入口,檢視是否啟動成功

Modeler模組編譯,啟動

(1) POM修改結果如下,位於主POM.xml中:


	<modules
>
<!--<module>modules/flowable-bpmn-model</module>--> <!--<module>modules/flowable-process-validation</module>--> <!--<module>modules/flowable-bpmn-layout</module>--> <!--<module>modules/flowable-image-generator</module>--> <!--<module>modules/flowable-bpmn-converter</module>-->
<module>modules/flowable-engine-common-api</module> <module>modules/flowable-engine-common</module> <module>modules/flowable-entitylink-service-api</module> <module>modules/flowable-entitylink-service</module> <module>modules/flowable-idm-api</module> <module>modules/flowable-idm-engine</module> <!--<module>modules/flowable-idm-engine-configurator</module>--> <!--<module>modules/flowable-form-model</module>--> <module>modules/flowable-form-api</module> <module>modules/flowable-dmn-model</module> <module>modules/flowable-dmn-api</module> <module>modules/flowable-content-api</module> <!--<module>modules/flowable-cmmn-api</module>--> <!--<module>modules/flowable-cmmn-model</module>--> <!--<module>modules/flowable-cmmn-converter</module>--> <module>modules/flowable-cmmn-image-generator</module> <!--<module>modules/flowable-cmmn-engine</module>--> <module>modules/flowable-variable-service-api</module> <module>modules/flowable-variable-service</module> <module>modules/flowable-identitylink-service-api</module> <module>modules/flowable-identitylink-service</module> <module>modules/flowable-task-service-api</module> <module>modules/flowable-task-service</module> <module>modules/flowable-job-service-api</module> <module>modules/flowable-job-service</module> <module>modules/flowable-job-spring-service</module> <!--<module>modules/flowable-engine</module>--> <module>modules/flowable-app-engine-api</module> <module>modules/flowable-app-engine</module> <module>modules/flowable-spring-security</module> <!--</modules>--> <!--<modules>--> <module>modules/flowable-bpmn-model</module> <module>modules/flowable-process-validation</module> <module>modules/flowable-image-generator</module> <module>modules/flowable-bpmn-converter</module> <module>modules/flowable-engine</module> <!--<module>modules/flowable-secure-javascript</module>--> <module>modules/flowable-groovy-script-static-engine</module> <module>modules/flowable-bpmn-layout</module> <module>modules/flowable-json-converter</module> <module>modules/flowable-spring-common</module> <module>modules/flowable-engine-configurator</module> <module>modules/flowable-spring-configurator</module> <module>modules/flowable-app-engine-spring</module> <module>modules/flowable-app-engine-rest</module> <!--<module>modules/flowable-dmn-model</module>--> <module>modules/flowable-dmn-json-converter</module> <module>modules/flowable-dmn-xml-converter</module> <module>modules/flowable-dmn-engine</module> <module>modules/flowable-dmn-engine-configurator</module> <module>modules/flowable-dmn-spring</module> <module>modules/flowable-dmn-spring-configurator</module> <module>modules/flowable-dmn-rest</module> <module>modules/flowable-cmmn-api</module> <module>modules/flowable-cmmn-model</module> <module>modules/flowable-cmmn-converter</module> <module>modules/flowable-cmmn-json-converter</module> <module>modules/flowable-cmmn-engine</module> <module>modules/flowable-cmmn-engine-configurator</module> <module>modules/flowable-cmmn-spring</module> <module>modules/flowable-cmmn-spring-configurator</module> <module>modules/flowable-cmmn-rest</module> <module>modules/flowable-form-model</module> <module>modules/flowable-form-json-converter</module> <module>modules/flowable-form-engine</module> <module>modules/flowable-form-engine-configurator</module> <module>modules/flowable-form-spring</module> <module>modules/flowable-form-spring-configurator</module> <module>modules/flowable-form-rest</module> <module>modules/flowable-content-engine</module> <module>modules/flowable-content-engine-configurator</module> <module>modules/flowable-content-spring</module> <module>modules/flowable-content-spring-configurator</module> <module>modules/flowable-content-rest</module> <module>modules/flowable-common-rest</module> <module>modules/flowable-rest</module> <!--<module>modules/flowable-app-rest</module>--> <module>modules/flowable-idm-engine-configurator</module> <module>modules/flowable-idm-spring</module> <module>modules/flowable-idm-spring-configurator</module> <module>modules/flowable-idm-rest</module> <module>modules/flowable-spring</module> <!--<module>modules/flowable5-engine</module>--> <!--<module>modules/flowable5-compatibility</module>--> <!--<module>modules/flowable5-spring</module>--> <!--<module>modules/flowable5-spring-compatibility</module>--> <module>modules/flowable-spring-boot</module> <!--<module>modules/flowable-cxf</module>--> <!--<module>modules/flowable-mule</module>--> <!--<module>modules/flowable-http</module>--> <!--<module>modules/flowable-camel</module>--> <!--<module>modules/flowable-camel-cdi</module>--> <!--<module>modules/flowable-cdi</module>--> <!--<module>modules/flowable-osgi</module>--> <module>modules/flowable-ldap</module> <!--<module>modules/flowable-ldap-configurator</module>--> <!--<module>modules/flowable-jmx</module>--> <!--<module>modules/flowable-jms-spring-executor</module>--> <module>modules/flowable-ui-common</module> <!--<module>modules/flowable-ui-edge</module>--> <!--<module>modules/flowable-ui-idm</module>--> <module>modules/flowable-ui-modeler</module> <!--<module>modules/flowable-ui-task</module>--> <!--<module>modules/flowable-ui-admin</module>--> <module>tooling/archetypes/flowable-archetype-unittest</module> </modules>

(2)flowable-ui-task-app\pom.xml,這個xml的tomcat不要用外部的,使用嵌入式,方便我們後續直接通過程式碼啟動除錯。修改後

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!--<scope>provided</scope>-->
        </dependency>

(3)到此已經修改,完成,單擊啟動類啟動,啟動類在下圖所示的包中
在這裡插入圖片描述
(4)在啟動類上點選右鍵,Run,就可以完成啟動,啟動結果如下:
在這裡插入圖片描述

遺留問題

由於modeler採用了Spring Security和idm集成了認證,所以導致我們的modeler雖然啟動了,但是無法顯示頁面,下一個專題我們將修復該問題,並提供一版本原始碼可以獨立執行的。

打賞

如果您覺得該文章對您有幫助,歡迎打賞作者,謝謝。
在這裡插入圖片描述
在這裡插入圖片描述

版權

版權所有,侵權必究,程式碼與文章,使用、copy、轉載請聯絡作者。由書山登峰人創作。