zoukankan      html  css  js  c++  java
  • org.activiti.dependencies 7.1.0.M6 造成版本冲突问题的解决

    【直击问题】

    1 <activiti-dependencies.version>7.1.0.M6</activiti-dependencies.version><!--默认依赖 org.springframework version:5.1.13 -->
    2 <activiti-dependencies.version>7.1.0.M5</activiti-dependencies.version><!--默认依赖 org.springframework version:5.1.11-->
    3 <activiti-dependencies.version>7.1.0.M4</activiti-dependencies.version><!--默认依赖 org.springframework version:5.1.8-->
    4 <spring-cloud.version>Greenwich.SR1</spring-cloud.version><!--默认依赖 org.springframework version:5.1.11 -->

    1. 我使用的 springboot 版本是 2.1.10.RELEASE,springcloud版本是 Greenwich.SR1 ,按照默认的情况下,如果结合 activiti 使用,需要使用版本 7.1.0.M5 则正合适。但是,经过尝试,版本 7.1.0.M5 存在诸多问题,较直接的一个问题是,spring.activiti.database-schema-update=drop-create 该策略模式下,执行默认提供的多条创建表的sql语句无法创建正确的数据表结构,记忆深刻的有 act_re_deployment 表中,在建表语句中,少了 VISION 字段。启动之初,先执行建表语句,启动继续进行,验证时报错,报找不到 VISION 字段的错误。

    2. 在使用 spring-boot-starter-quartz 时,springboot自动配置里面的 org.springframework.boot.autoconfigure.quartz 中 QuartzAutoConfiguration 2.1.10.RELEASE 依赖的 spring 版本是 org.springframework version:5.1.11

    【最终方案】

    <activiti-dependencies.version> 采用 7.1.0.M5
    <spring-cloud.version>采用 Greenwich.SR1
    适配 spring 版本为 org.springframework version:5.1.11

    【操作步骤】

    去掉:

     1     <dependencyManagement>
     2         <dependencies>
     3             <dependency>
     4                 <groupId>org.activiti.dependencies</groupId>
     5                 <artifactId>activiti-dependencies</artifactId>
     6                 <version>7.1.0.M6</version>
     7                 <scope>import</scope>
     8                 <type>pom</type>
     9             </dependency>
    10         </dependencies>
    11     </dependencyManagement>

    版本依赖推迟到具体的包的引用上,具体为:

    (1)若工程采用多module方式,在 主module(即 root module,也即 工程中的parent模块)pom.xml 中:

     1     <modules><!-- 示例保留了4个module -->
     2         <module>activiti-server</module>
     3         <module>schedule-server</module>
     4         <module>eureka-server</module>
     5         <module>common-server</module>
     6     </modules>
     7     
     8     <parent>
     9         <groupId>org.springframework.boot</groupId>
    10         <artifactId>spring-boot-starter-parent</artifactId>
    11         <version>2.1.10.RELEASE</version><!--org.springframework version:5.1.11-->
    12         <relativePath/> <!-- lookup parent from repository -->
    13     </parent>
    14     
    15     <dependencyManagement>
    16         <dependencies>
    17             <dependency>
    18                 <groupId>org.springframework.cloud</groupId>
    19                 <artifactId>spring-cloud-dependencies</artifactId>
    20                 <version>${spring-cloud.version}</version>
    21                 <scope>import</scope>
    22                 <type>pom</type>
    23             </dependency>
    24         </dependencies>
    25     </dependencyManagement>

    (2)在 各子module的 pom.xml 中

    1         <dependency>
    2             <groupId>org.springframework.boot</groupId>
    3             <artifactId>spring-boot-starter-web</artifactId>
    4         </dependency>
    5         <dependency>
    6             <groupId>org.springframework.boot</groupId>
    7             <artifactId>spring-boot-starter-data-jpa</artifactId>
    8         </dependency>
    9         <!-- …… 其他springboot依赖 -->

    (3)其中在 activiti-server 服务板块 pom.xml 如此:

     1         <properties>
     2             <activiti-dependencies.version>7.1.0.M6</activiti-dependencies.version>
     3         </properties>
     4         <dependencies>
     5             <dependency>
     6                 <groupId>org.activiti</groupId>
     7                 <artifactId>activiti-spring-boot-starter</artifactId>
     8                 <version>${activiti-dependencies.version}</version>
     9             </dependency>
    10             <!-- Activiti生成流程图 -->
    11             <dependency>
    12                 <groupId>org.activiti</groupId>
    13                 <artifactId>activiti-image-generator</artifactId>
    14                 <version>${activiti-dependencies.version}</version>
    15             </dependency>
    16             
    17             <!-- …… 其他springboot依赖 -->
    18         </dependencies>

    【敬告】

    版本选择时,需做兼容性测试,使用成熟的版本,不要轻易调整,尤其处于基础位置的更要慎重。在版本升级中,会出现严重的兼容性问题,而且容易引起,牵一发而动全身,甚至造成不可逆转的遗恨(有些问题的暴露不是立即现象的,这就更加不好把控了)。

    问题虐我千百遍,再也别见!

  • 相关阅读:
    python 安装Crypto.Ciphe
    ProxyPool 爬虫代理IP池配置采坑
    2020渗透测试面试问题大全
    Windows Server 2016抓取明文密码
    应用安全 – 端口漏洞整理
    .net core docker+ gogs + jenkins 自动化部署
    .net HttpClient 回传实体帮助类
    .net list转树状结构
    ABP 临时禁用TenantId IsDelete过滤
    ABP 使用cache缓存
  • 原文地址:https://www.cnblogs.com/bridgestone29-08/p/13567907.html
Copyright © 2011-2022 走看看