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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 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。
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
11月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
223 1
|
10月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
807 8
|
10月前
|
XML Android开发 数据格式
Eclipse 创建 XML 文件
Eclipse 创建 XML 文件
144 2
|
11月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
147 3
|
Android开发 数据库
安卓开发_浅谈主配置文件(AndroidManifest.xml)
AndroidManifest.xml本质:是整个应用的主配置清单文件包含:该应用的包名,版本号,组件,权限等信息作用:记录该应用的相关的配置信息 一、常用标签(1)、全局篇(包名,版本信息)(2)、组件篇(四大组件)、(3)、权限篇(申请权限和定义权限)1、全局篇(1)、应用的包名以及版本信息的管理package="com.
1024 0
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
115 0
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
130 0
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
193 1