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

将Gradle从4.4升级至5.4后出现Joda-Time依赖问题

解决Gradle 5.4迁移后Joda-Time依赖缺失的编译错误

这问题我碰过好几次——Gradle版本升级后依赖解析逻辑变严格了,再加上你的子项目没显式声明Joda-Time依赖,才导致编译炸锅。直接给你搞定的步骤:

核心解决方案:显式添加Joda-Time依赖

在子项目的build.gradle的dependencies块里,加上Joda-Time的依赖声明。因为Gradle 5.x对传递依赖的处理更严谨,之前4.x可能通过某个依赖间接引入了Joda-Time,但升级后这个传递路径被截断或者规则变了,必须显式声明:

dependencies {
    implementation "com.t.com:x-core:1.0.0"
    implementation "commons-lang:commons-lang:2.6"
    // 新增Joda-Time依赖,版本选稳定版即可
    implementation "joda-time:joda-time:2.10.14"
}

为什么Gradle 4.x没问题,5.x就报错?

  • Gradle 5.x默认启用了更严格的依赖解析策略,比如旧的compile依赖范围被替换成implementation,如果父项目或其他依赖的配置有变化,间接依赖可能不再被自动引入。
  • 你用的自定义插件j-library或m-publish,在Gradle 4.x时可能隐含引入了Joda-Time,但升级到5.x后插件的行为有变化,不再自动添加这个依赖。

可选优化:统一依赖版本(如果有父项目)

如果你的大型项目有根项目的依赖管理(比如用platform或dependencyManagement插件),可以在根项目里统一声明Joda-Time的版本,子项目只需要写依赖名称不用带版本:

根项目build.gradle:

dependencyManagement {
    dependencies {
        dependency "joda-time:joda-time:2.10.14"
    }
}

子项目里就可以简化成:

implementation "joda-time:joda-time"

改完之后重新执行./gradlew build,应该就能解决编译报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:55:41