【Activiti系列学习】--4.从Github克隆Activiti并研究源码结构

Activiti 6.0源码初探
一、Github工作方式
 
Activiti Admin为Activiti官方管理员所维护的库。
采用从官方库fork一份到自己的库,然后再克隆,可以实现在修改完本地代码后交到自己的库中,而若是直接从官方克隆是不能实现的。若我们提交到自己的库中的代码是有价值的,可以向官方库发起一个请求,他们的运维管理员通过之后,会将代码推送到官方库,这样就为开源软件做贡献。并且一个项目的fork数体现了该项目的受欢迎程度。若要实时更新Activiti的代码,可以从Activiti库中pull一份,然后提交到自己的库中。
 
二、克隆源码并编译
 
1.克隆源码
git clone git@github.com:shaoyucao/Activiti.git
 
2.进入到Activiti中并进行checkout创建分支操作cd
cd Activiti
git checkout -b study6 activiti-6.0.0  #以activiti-6.0.0为分支分化一个新分支study6,并切换到study6
 
3.编译
mvn clean test-compile  #mvn clean清除编译生成的文件,mvn test-compile ,对源码进行编译,包括test/java,main/java下面的源码
 
发现编译前后两者的文件内容是不一样的
编译前:
编译后:
编译完成后,将Activiti整个文件拷贝到pc的IDEA的工作目录,然后选择用IDEA打开即可。
三、Activiti的主要结构
1.activiti工作目录
 
1) distro 发布用的目录, eclipse eclipse工具 开发所用的配置文件, modules 为源码的模块包结构, qa 为质量相关的文件, scripts 为启动的脚本, tooling中为 脚手架工程
2)maven工程主要的是pom.xml文件,其中有很多个module,最主要的是activiti-engine,依赖到各个模块的构建
查看modules中的activiti-engine结构
 
3)查看main/java下面的结构:
 
cfg为配置文件相关,compatibility为兼容性相关,Activiti5到Activiti6有一部分不兼容是在这里做适配;debug为调试相关,使用它可以更清楚地看到一些日志;delegate为比较重要的包结构,一些重要的节点如serviceTask都需要通过其中的JavaDelegate去实现。event为节点的进入和退出等定义了一些监听机制;form为一些通用的表单;history处理存放一些执行完的数据;identity为个人身份校验相关;impl为对应的一些实现;logging为日志相关,其中只有一个LogMDC,management为流程管理相关的接口和api,parse为解析流程文件.xml,做解析相关的操作;query定义了一些抽象的查询接口;repository为流程部署到数据库相关的过程;runtime为流程执行过程中的一些处理;task处理人工任务或者需要第三方处理的过程,test为Activiti非常友好地提供单元测试的类
外面的文件为:异常相关;参数不合法;对象找不着;比较关注的是最外层的几个Service
结论:越是重要的类越是放在外面
 
4)查看在main/resources文件结构
 
 
 
META-INF.services为配置了Juel的script,db下为关于数据库的一些脚本的创建,分为db2, h2, hsql, mssql(微软的sql),  mysql, oracle, pg等数据库,mapping中为mybatis的配置文件;properties中为数据库的配置文件(方言不同),upgrade为版本升级的时候对于sql语句的升级,bpmn.deployer中为一些小图标,LocalStrings为本地化的文件
 
5)查看test/java和test/resources文件结构
 
Activiti中自己配置了一些单元测试类,resources为单元测试相关的资源
 
四、 activiti 核心模块
module/activiti-engine               核心引擎
module/activiti-spring                Spring集成模块
module/ activiti-spring-boot      Spring-boot集成模块
module/activiti-rest                    对外提供rest api模块
module/activiti-form-engine      表单引擎模块
module/activiti-ldap                   集成ldap用户的模块(与公司或企业的用户体系做集成)
 
 
 bpmn-converter对应模型转换,process-validation对应于模型、流程的校验是否合法,image-generator为流程图绘制的模块、dmn-api为新的决策的标准。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值