Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Activiti 简介以及最新activiti依赖 pom.xml文件(使用时注意对应版本号)

Activiti集成到Spring中,需要根据Activiti版本的不同,使用对应版本的Spring框架。

  • Activiti 5.x版本需要使用Spring 3.x版本,
  • Activiti 6.x版本需要使用Spring 4.x版本或Spring Boot 1.x版本,
  • Activiti 7.x版本需要使用Spring 5.x版本或Spring Boot 2.x版本。

需要注意的是,不同版本的Spring框架在API和配置上可能存在差异,因此在集成时需要根据具体的版本进行配置。在集成过程中,可以通过 Maven 或 Gradle 等依赖管理工具,将 Activiti 和 Spring 相关的依赖库引入到项目中,并按照官方文档提供的配置方式进行集成。

一、Activiti5版本

Activiti5.x的最后一个版本5.23.0, 从2019年8月起,git仓库的代码就没有更新过,官方已不再维护

二、Activiti6版本

Activiti6.x, 从2020年5月起,git仓库的代码就没有更新过,官方已不再维护。Activiti6官方只发布过一个6.0.0版本,由于核心团队变动,经历的时间很多,没有持续发展。

三、Activiti7版本

Activiti7实际上官方现在叫Activiti Cloud。Activiti7跟Activiti5和Activiti6的定位和架构完全不一样,是按照标准云原生架构设计的,包括多个Cloud Native组件,可在分布式环境中工作。基于Kubernetes作为我们的主要部署基础设施,使用Spring Cloud/Spring Boot和Docker来对这些组件进行容器化。

Activiti7包括5个基础构建块:

  1. Activiti Cloud Runtime Bundle
  2. Activiti Cloud Query
  3. Activiti Cloud Audit
  4. Activiti Cloud Connectors
  5. Activiti Cloud Notifications Service (GraphQL)

Activiti7是标准云原生架构,集成多个云原生工具

标准云原生架构,满足云原生12要素。要构建云原生应用程序和服务,仅仅将旧的庞然大物打包在Docker Image中并在Kubernetes中运行是不够的,完全参考Heroku定义的云原生十二要素原则(https://content.pivotal.io/ebooks/beyond-the-12-factor-app)。如果没有这些指导原则,就很难在分布式环境中进行扩展。Activiti Cloud重新定位流程引擎,以便更好地与此类分布式环境中的其他组件交互。Activiti Cloud成功的衡量标准是与其他微服务的低阻抗不匹配,以及它们的设计、构建和部署方式。

Activiti7集成的云原生工具:

  1. Jenkins X: Kubernetes的CI/CD做得很好
  2. JHipster: Spring Cloud和Angular/React生成器
  3. HELM: Kubernetes Package Manager,我们用它在K8s中部署Activiti Cloud应用程序。
  4. Spring Cloud Kubernetes:我们使用它来避免与基础设施的重复/重叠
  5. Istio:基于K8s的服务网格
  6. KNative:作为K8s之上的服务层

四、最新activiti依赖 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.test</groupId>
    <artifactId>activiti01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- activiti 的相关包 mysql的驱动包 mybatis包 log4j包 数据库链接池-->
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <slf4j.version>1.6.6</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
        <activiti.version>6.0.0</activiti.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-engine</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <!-- bpmn 模型处理 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-model</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <!-- bpmn 转换 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-converter</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <!-- bpmn json数据转换 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-json-converter</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <!-- bpmn 布局 -->
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-layout</artifactId>
            <version>${activiti.version}</version>
        </dependency>
        <!-- activiti 云支持 -->
        <dependency>
            <groupId>org.activiti.cloud</groupId>
            <artifactId>activiti-cloud-services-api</artifactId>
            <version>7-201710-EA</version>
        </dependency>
        <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!-- 链接池 -->
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
        </dependency>
        <!-- log start -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.26</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
    </dependencies>
</project>

五、总结:

  1. activiti5和ativiti6官方已不再发展和维护,代码已经4年没有更新,不建议选择。
  2. Activiti7即Activiti Cloud,定位云产品,完全面向云原生架构设计开发,依赖k8s等多个CNCF云组件,开发、集成、部署和运维均比较复杂,对团队技术人员能力要求高,一般中小型项目,不建议选择Activiti7。
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
5天前
|
XML 数据格式
小米备份descript.xml文件
小米备份descript.xml文件
12 0
|
16天前
|
XML Java 数据库连接
mybatis中在xml文件中通用查询结果列如何使用
mybatis中在xml文件中通用查询结果列如何使用
20 0
|
18天前
|
XML JavaScript 前端开发
xml文件使用及解析
xml文件使用及解析
|
1月前
|
XML C# 数据格式
使用C#操作XML文件
使用C#操作XML文件
11 0
|
8天前
|
XML C# 数据格式
C# 解析XML文件
C# 解析XML文件
17 1
|
19天前
|
Java Maven
SpringMVC常用Maven POM.xml依赖包片段
SpringMVC常用Maven POM.xml依赖包片段
|
1月前
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
Mybatis+mysql动态分页查询数据案例——配置映射文件(HouseDaoMapper.xml)
15 1
|
1月前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
1月前
|
Java
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
10 0
|
1月前
|
XML Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——hibernate的config文件(hibernate.cfg.xml)
11 0