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

引入共享传递依赖的第三方库后Cassandra驱动报ClassNotFoundException

问题原因

虽然mvn dependency:tree显示com.typesafe:config版本一致,但该异常的核心原因是引入new-library后,实际加载到运行环境的com.typesafe:config包不完整:要么是new-library打包时篡改了传递的config包(删除了部分类、重打包修改了类路径、或错误标记了依赖scope),要么是本地Maven仓库的config包缓存损坏。

解决方案

按以下优先级操作即可解决:

  1. 校验并修复本地Maven缓存
    进入本地Maven仓库的com/typesafe/config/1.4.1目录,删除该目录下所有文件,执行mvn clean install -U重新拉取官方正式包,解压新拉取的config-1.4.1.jar确认存在com/typesafe/config/ConfigOriginFactory.class文件。

  2. 全局锁定依赖版本
    在项目pom.xml的dependencyManagement节点下添加全局锁定配置,优先级高于所有传递依赖:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>1.4.1</version>
                <scope>compile</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    同时保留new-library依赖下的com.typesafe:config排除规则,确保使用全局锁定的官方包。

  3. 清理构建验证
    执行以下命令完全清理旧构建产物后重新打包:

    mvn clean package
    

    解压最终生成的SpringBoot jar包,检查BOOT-INF/lib下的config-1.4.1.jar是官方完整包即可。

  4. 极端情况处理
    如果以上操作仍无效,说明new-library内部直接内嵌了重打包的config类(未通过传递依赖引入),此时可修改spring-boot-maven-plugin配置,调整类加载顺序优先加载com.datastax.oss相关依赖,或使用Maven Shade插件将com.typesafe:config包重命名后引入,避免类路径冲突。


内容的提问来源于stack exchange,提问作者Paul C

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:45:02