Activiti6.0学习实践(2)-源码工程构建

上节对工作流和activiti有了一个基本认识,本节主要目的是构建源码工程,了解如何从git上创建本地的工程,同时对源码有个基本的了解。

目录

1、克隆到本地

2、建立远程git库分支

3、导入到工程

4、源码基本结构

5、基于源码启动activiti-app

6、Activity-app如何构建spring容器和servlet容器


1、克隆到本地

由于github现在对国内网速限制的厉害,所以基本上无法从github直接下载使用。一个简单的办法是“曲线救国”,从码云gitee将github上的项目clone过去,然后在从云上克隆到本地。

首先要有gitee账号,然后在gitee上创建一个新库,注意创建的时候要设定导入已有仓库

Activiti6.0学习实践(2)-源码工程构建

在上面的地址栏目填入github上的url:https://github.com/cwqsolo/Activiti.git

这样就可以创建一个activiti的副本了。

Activiti6.0学习实践(2)-源码工程构建

注意一下标注红框的地方,后续我们研究和学习都是基于6.x的基础之上。

下面我们clone到本地,使用如下命令:

git clone  https://gitee.com/cwqsolo/Activiti.git

Activiti6.0学习实践(2)-源码工程构建

克隆完成后,在本地可以看到里面的内容。见下图

Activiti6.0学习实践(2)-源码工程构建

2、建立远程git库分支

因为学习和实践会对原有分支产生影响,因此需要建立一个分支,在此基础上进行代码的研究和修改,使用如下命令进行分支的创建:

Activiti6.0学习实践(2)-源码工程构建

创建后,本地目录如下所示

Activiti6.0学习实践(2)-源码工程构建

下面进行编译mvn  clean  test-compile

Activiti6.0学习实践(2)-源码工程构建

编译完成后,我们下一步,用开发IDE导入工程。

3、导入到工程

下面通过IDEA的导入功能,将这个分支导入并创建工程。打开IDEA

Activiti6.0学习实践(2)-源码工程构建

选中import Project后,在弹出界面上找到刚才工程目录下的pom.xml

Activiti6.0学习实践(2)-源码工程构建

后面一路next,在选中jdk的时候,注意选中1.8

Activiti6.0学习实践(2)-源码工程构建

工程创建后,就会根据pom.xml中的依赖进行相关依赖的下载,整个过程比较长,可以去吃点茶点。

完成后的工程结构如下所示:

Activiti6.0学习实践(2)-源码工程构建

导入后pom.xml有些现实红色,暂时不管他

4、源码基本结构

在model目录下,是activiti的核心模块,其中activiti-engine又是其中最重要的包

Activiti6.0学习实践(2)-源码工程构建

几个activiti核心模块:

Module/activity-engine  流程引擎(重点)

Module/activity-spring  提供了spring的配置方式

Module/activity-springboot 提供了springboot的配置方式

Modele/activity-rest    提供了restapi模块

5、基于源码启动activiti-app

下面通过命令行方式,我们启动基于源码的activiti-app,通过以下三个步骤可以启动activiti-app

  1. 进入app所在的目录:  cd  modules/activity-ui/activiti-app
  2. 执行mvn命令:   mvn  clean  tomcat7:run
  3. http://localhost:9999/activiti-app

 

下面是第2,3步的一些截图:

Activiti6.0学习实践(2)-源码工程构建

看到这个9999端口,说明app已经启动成功了。打开url后呈现如下:

Activiti6.0学习实践(2)-源码工程构建

使用admin/test登陆后,呈现如下界面(说明:这里是没有汉化的)。

Activiti6.0学习实践(2)-源码工程构建

Activiti-app的源码结构分析:

Activiti-app: 集成发布的war工程

Activiti-app-conf: ui独立于业务外的配置

Activiti-app-logic: ui的业务逻辑

Activiti-app-rest: 提供接口的rest api

除了war工程外,其他都是生产jar包。

6、Activity-app如何构建spring容器和servlet容器

在activiti-app包下,有工作流初始化入口的重要类,webconfigurer,它Activiti\modules\activiti-ui\activiti-app-conf\src\main\java\org\activiti\app\servlet\WebConfigurer.java。这个是类

是一个servletlistener的实现,在内部通过代码实现了两个dispatchservlet的创建,同时将应用(spring)容器和这两个(servlet)容器进行了绑定。

Activiti6.0学习实践(2)-源码工程构建