Skip to content

Camunda

部署

  • 依赖信息
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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.4</version>
        <relativePath/>
    </parent>

    <groupId>com.wkclz.camunda</groupId>
    <artifactId>shrimp-camunda</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>shrimp-camunda</name>
    <description>shrimp-camunda</description>

    <properties>
        <java.version>21</java.version>

        <druid.version>1.2.23</druid.version>
        <camunda.version>7.22.0</camunda.version>
    </properties>

    <dependencies>

        <!-- 流程引擎 -->
        <dependency>
            <groupId>org.camunda.bpm.springboot</groupId>
            <artifactId>camunda-bpm-spring-boot-starter</artifactId>
            <version>${camunda.version}</version>
        </dependency>
        <!-- Web管理平台 -->
        <dependency>
            <groupId>org.camunda.bpm.springboot</groupId>
            <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
            <version>${camunda.version}</version>
        </dependency>
        <!-- 提供rest api操作接口包 -->
        <dependency>
            <groupId>org.camunda.bpm.springboot</groupId>
            <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
            <version>${camunda.version}</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-3-starter</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
        </dependency>

    </dependencies>

    <build>
        <finalName>${project.name}</finalName>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <!-- 打包时排除不需要的配置 -->
                    <exclude>**/application-*.yml</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  • 配置信息
yaml
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/db_camunda?useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
    username: db_username
    password: db_password
camunda:
  bpm:
    auto-deployment-enabled: true
    auto-deployment-locations: classpath*:bpmn/
    admin-user:
      # 用户名
      id: camunda_username
      # 密码
      password: camunda_password
      firstName: camunda_firstName
    filter:
      create: All tasks
  • 再加个 main 函数,启动即可

管理面板

  • 登录地址:http://localhost:8080 (部署在服务器上请自行转换)
  • 功能:
    • Admin: 用户,组,租户,授权,系统配置
    • Cockpit: 驾驶舱:流程实例,事件,任务
    • Tasklist: 任务列表,正在运行的任务
  • 流程示例
    • 部署流程:UI 居然没有部署流程的地方。。需要使用项目,或接口来部署 【可以使用设计器来部署流程】
    • 启动流程:Tasklist -> Start Process -> 选择流程,填写变量,启动 -> 流程审批 -> 结束

设计器

客户端

  • 集成
xml
<dependency>
    <groupId>org.camunda.community.rest</groupId>
    <artifactId>camunda-platform-7-rest-client-spring-boot-starter</artifactId>
    <version>7.22.0</version>
</dependency>
  • 配置
yaml
feign:
  client:
    config:
      default:
        url: http://localhost:8080/engine-rest
    • org/camunda/community/rest/client/FeignClientConfiguration.java 内有 jackson 序列化相关bean 注册,覆盖了自定义的逻辑。可使用覆盖类的方式移除
    • rest 客户端一些高级操作,都被标注为 TODO("not implemented"), 需要自行使用 http client 工具实现
    • 无法获取流程图

Released under the MIT License.