工作流activiti 6.0与SpringBoot2.0集成

工作流activiti 6.0与SpringBoot2.0集成

不论是SpringBoot还是SpringMVC集成activiti工作流时候发现集成报错,我们可以找到activiti6.0源码看下就知道,activiti引用的是SpringBoot版本是1.2.6,而我们现在的SpringBoot版本都是2.0.0以上的版本。所以我们需要修改源码让它兼容我们。

大致分为三步:

  • 升级SpringBoot依赖并解决编译错误
  • 更新activiti-spring-boot-starter-basic版本并安装
  • 集成使用Activiti的AutoConfiguration功能

修改源码

  • 源码目录结构

工作流activiti 6.0与SpringBoot2.0集成

  • 核心代码是modules,我们主要改modules—>activiti-spring-boot—>spring-boot-starters—>activiti-spring-boot-starter-basic

  • 我们可以在activiti-spring-boot-starter-basic的pom文件查看spring-boot-starter-web的版本(点进去看),一直向上找最后发现在源码最外面的pom文件中spring.boot.version的版本是1.2.6,我们需要把1.2.6.RELEASE改成2.0.0.RELEASE以上的版本即可。我这里改为2.0.0.RELEASE

  • 修改完成以后由于版本不统一会出现一些错误,把activiti-spring-boot编译一下,哪有错误就修改哪。下面我直接修改了。

  • ProcessEngineEndpoint类出错,位置是:
    工作流activiti 6.0与SpringBoot2.0集成

  • 修改前
    工作流activiti 6.0与SpringBoot2.0集成

  • 修改后
    工作流activiti 6.0与SpringBoot2.0集成

  • ProcessEngineMvcEndpoint类出错,位置是:上一个类ProcessEngineEndpoint同级

  • 修改前
    工作流activiti 6.0与SpringBoot2.0集成

  • 修改后
    工作流activiti 6.0与SpringBoot2.0集成

  • 接下来修改几个类的位置是:
    工作流activiti 6.0与SpringBoot2.0集成

  • 修改 EndpointAutoConfiguration把类上注解ConditionalOnClass注释即可
    工作流activiti 6.0与SpringBoot2.0集成

  • 修改DataSourceProcessEngineAutoConfiguration第一个方法注解ConditionalOnMissingClass属性name改为value
    工作流activiti 6.0与SpringBoot2.0集成

  • 修改SecurityAutoConfiguration类注解AutoConfigureBefore属性包结构发现变化,改为org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class),比原来多了个servlet
    工作流activiti 6.0与SpringBoot2.0集成

    • 修改完成以后重新install一下,只installactiviti-spring-boot-starter-basic,如果没问题的话是可以通过的。
  • 因为6.0.0版本已经存在所以我们需要修改一下版本号,activiti-spring-boot-starter-basic的pom文件加一行<version>6.0.0-boot2</version>
    工作流activiti 6.0与SpringBoot2.0集成

  • 修改源码最外面的pom文件,把文件中所有${project.version}全部替换成6.0.0。所有关于org.activiti的加上版本<version>6.0.0</version>,只截图了一部分。
    工作流activiti 6.0与SpringBoot2.0集成

  • 现在已经全部修改完成,installactiviti-spring-boot-starter-basic一下。其它项目需要引用我们的activiti即可。
    工作流activiti 6.0与SpringBoot2.0集成
    点击下载代码