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

DynamicJasper依赖致commons-logging冲突,SpringBoot初始化报错未解决求助

解决方案:解决commons-logging-1.0.3清单文件引用不存在依赖的问题

我之前也踩过这个坑,这个提示的本质不是你的项目缺失log4j依赖,而是commons-logging-1.0.3.jar自身的MANIFEST.MF文件里硬编码了不存在的log4j相关路径,而且你当前排除DynamicJasper的commons-logging引用没用,大概率是项目里还有其他依赖间接引入了这个老版本的commons-logging。

下面是具体的解决步骤:

  • 第一步:定位老版本commons-logging的来源
    执行Maven命令查看所有引入commons-logging的依赖路径,找到带1.0.3版本的那个依赖:

    mvn dependency:tree -Dincludes=commons-logging
    

    这个命令会输出类似这样的结构,帮你找到到底是哪个依赖偷偷引入了1.0.3版本:

    [INFO] +- XXXXX:XXXX:jar:1.0:compile
    [INFO] |  \- commons-logging:commons-logging:jar:1.0.3:compile
    
  • 第二步:替换为无问题的commons-logging版本
    最直接的方式是通过dependencyManagement强制指定项目使用稳定的1.2版本(这个版本的MANIFEST清单里没有那些无效的Class-Path引用),在你的pom.xml里添加:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    这样整个项目里所有依赖引入的commons-logging都会统一用1.2版本,替换掉有问题的1.0.3。

  • 第三步:清理本地Maven缓存(可选但推荐)
    找到本地Maven仓库里的commons-logging/commons-logging/1.0.3目录,删除它,然后执行:

    mvn clean install
    

    避免本地缓存的老jar包影响新依赖的加载。

另外补充一句:你之前排除DynamicJasper的commons-logging是对的,但如果还有其他依赖引入老版本,就会出现这个问题,所以核心是把整个项目的commons-logging版本统一到无问题的1.2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:03:34