You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Liquibase与Cassandra 5协同工作?解决依赖冲突

可行方案:Liquibase 适配 Cassandra 5 解决依赖冲突问题

问题概述

现有Liquibase官方Cassandra教程文档过时,推荐的依赖库会引发冲突;直接使用Cassandra官方提供的shaded驱动也无法正常运行,因版本冲突导致类缺失或加载异常,核心难点在于库重命名、迁移及shaded版本导致的依赖追踪困难。

核心解决步骤

1. 选用兼容的非Shaded Cassandra Java Driver

Cassandra 5需搭配4.17.x及以上版本的非Shaded官方Java Driver,避免Shaded版本的类重命名导致Liquibase无法识别。

2. 对齐Liquibase核心与扩展版本

确保liquibase-core和liquibase-cassandra扩展版本完全一致,避免版本不兼容引发的API差异。

3. 排除冲突依赖

主动排除Liquibase扩展自带的旧版Cassandra Driver、Guava、Netty等易冲突依赖,强制使用适配Cassandra 5的版本。

具体依赖配置示例

Maven 配置

<dependencies>
    <!-- Liquibase 核心库,使用最新稳定版 -->
    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
        <version>4.25.0</version>
    </dependency>
    <!-- Liquibase Cassandra 扩展,排除冲突依赖 -->
    <dependency>
        <groupId>org.liquibase.ext</groupId>
        <artifactId>liquibase-cassandra</artifactId>
        <version>4.25.0</version>
        <exclusions>
            <exclusion>
                <groupId>com.datastax.oss</groupId>
                <artifactId>java-driver-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.datastax.oss</groupId>
                <artifactId>java-driver-query-builder</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- 适配Cassandra 5的官方Java Driver -->
    <dependency>
        <groupId>com.datastax.oss</groupId>
        <artifactId>java-driver-core</artifactId>
        <version>4.17.0</version>
    </dependency>
    <dependency>
        <groupId>com.datastax.oss</groupId>
        <artifactId>java-driver-query-builder</artifactId>
        <version>4.17.0</version>
    </dependency>
    <!-- 解决Netty版本冲突,使用Driver兼容版本 -->
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>4.1.94.Final</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

Gradle 配置

dependencies {
    implementation 'org.liquibase:liquibase-core:4.25.0'
    implementation('org.liquibase.ext:liquibase-cassandra:4.25.0') {
        exclude group: 'com.datastax.oss', module: 'java-driver-core'
        exclude group: 'com.datastax.oss', module: 'java-driver-query-builder'
        exclude group: 'com.google.guava', module: 'guava'
    }
    implementation 'com.datastax.oss:java-driver-core:4.17.0'
    implementation 'com.datastax.oss:java-driver-query-builder:4.17.0'
    runtimeOnly 'io.netty:netty-all:4.1.94.Final'
}

命令行Liquibase 手动配置

如果使用命令行工具:

  1. 下载上述版本的liquibase-core.jar、liquibase-cassandra.jar、java-driver-core.jar、java-driver-query-builder.jar及netty-all.jar
  2. 将所有jar包放入Liquibase的lib目录
  3. 删除lib目录中旧版的Cassandra Driver、Guava、Netty相关jar包,避免冲突

关键注意事项

  • 禁止使用Cassandra官方的Shaded驱动:Shaded版本会重命名com.datastax.oss下的类,导致Liquibase扩展无法找到对应API
  • 版本对齐优先:所有依赖的次要版本尽量保持一致,避免跨版本的类兼容性问题
  • 依赖冲突排查:可使用mvn dependency:tree(Maven)或gradle dependencies(Gradle)命令查看依赖树,定位冲突源

内容的提问来源于stack exchange,提问作者Martin Mucha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 05:06:18