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

从Maven迁移至Gradle后War包部署Tomcat出现依赖错误求助

问题分析与解决方案

针对 NoSuchMethodError: org.apache.commons.lang.StringUtils.capitalize 错误

  • 问题本质:项目依赖的是org.apache.commons:commons-lang3:3.9,但错误提示调用的是旧版commons-lang(包路径org.apache.commons.lang)的capitalize方法。你在hadoop-common依赖中排除了commons-lang,但不排除其他依赖间接引入旧版,或代码里引用了错误的包路径。
  • 修复步骤:
    1. 全局检查代码中StringUtils.capitalize的导入语句,确保所有引用都是org.apache.commons.lang3.StringUtils,替换旧版的org.apache.commons.lang.StringUtils。
    2. 执行gradle dependencies查看依赖树,定位是否有其他依赖引入了旧版commons-lang,如果有,给对应依赖添加排除规则,示例:
      api('第三方依赖组:依赖名:版本') {
          exclude group: 'commons-lang', module: 'commons-lang'
      }
      
    3. 若确认项目完全不需要旧版commons-lang,可全局强制排除:
      configurations.all {
          exclude group: 'commons-lang', module: 'commons-lang'
      }
      

针对 NoClassDefFoundError: Could not initialize class org.apache.hadoop.security.UserGroupInformation 错误

  • 问题本质:UserGroupInformation初始化失败,大概率是因为缺少Hadoop核心依赖,或者依赖冲突导致类加载异常。你给hadoop-common排除了大量必要依赖(比如commons-codec、httpclient、guava等),这些都是Hadoop初始化必须的组件。
  • 修复步骤:
    1. 调整hadoop-common的排除规则,恢复核心依赖的引入,示例:
      api ('org.apache.hadoop:hadoop-common:3.3.6'){
          // 保留日志、重复Spring依赖等必要排除,移除以下核心依赖的排除:
          // exclude group: 'commons-codec', module: 'commons-codec'
          // exclude group: 'org.apache.httpcomponents', module: 'httpclient'
          // exclude group: 'org.apache.httpcomponents', module: 'httpcore'
          // exclude group: 'commons-collections', module: 'commons-collections'
          // exclude group: 'com.google.guava', module: 'guava'
          // 其余排除项根据实际冲突情况保留
      }
      
    2. 检查Tomcat服务器lib目录,若存在与Hadoop依赖冲突的Jar包(比如旧版commons-codec、guava),移除冲突包,保证War包内依赖版本一致。
    3. 执行gradle dependencies确认hadoop-common的所有传递依赖都已正确引入,无缺失。

额外优化建议

  • 清理Gradle缓存并重新构建:执行gradle clean build --refresh-dependencies,确保依赖重新下载并正确打包。
  • 对比Maven与Gradle依赖树:分别用mvn dependency:tree和gradle dependencies输出依赖树,找出两者的差异,重点排查冲突版本和缺失依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:07:49