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

Gradle 7.0.2运行lintDebug时lintClassPath无法解析模块元数据报错

问题原因

这个报错本质是Gradle 7默认优先拉取Gradle Module Metadata(后缀为.module的元数据文件),而你配置的私有Artifactory制品库中org.testng:testng:7.3.0对应的.module文件损坏、返回内容不是合法JSON,导致解析失败。
普通应用构建不会触发lintClassPath配置的依赖拉取,只有执行lint相关任务时才会用到该配置下的依赖,所以你正常构建应用没有问题。

解决方案
  • 方案1:禁用对应制品库的Gradle Module Metadata解析(优先推荐,不需要改动依赖版本也不需要操作制品库)
    在根项目的build.gradle或settings.gradle的制品库配置块中添加元数据解析规则,强制使用pom文件解析:
repositories {
    maven {
        url "https://<你的Artifactory地址>"
        metadataSources {
            mavenPom() // 优先使用pom.xml解析依赖
            artifact() // 直接通过artifact匹配
            ignoreGradleMetadataRedirection() // 忽略Gradle元数据重定向
        }
    }
}
  • 方案2:调整lintClassPath的依赖规则
    在根项目build.gradle中添加如下配置,直接排除lint不需要的groovy-testng依赖,或者强制指定testng的可用版本:
configurations {
    lintClassPath {
        // 方案2-1:直接排除groovy-testng依赖,lint运行不需要testng相关能力
        exclude group: 'org.codehaus.groovy', module: 'groovy-testng'
        
        // 方案2-2:如果排除后有问题,可强制指定一个制品库中元数据正常的testng版本
        // resolutionStrategy.force 'org.testng:testng:7.4.0'
    }
}
  • 方案3:修复制品库中的损坏文件
    如果有权限操作私有Artifactory,可找到org/testng/testng/7.3.0路径下的testng-7.3.0.module文件,删除该损坏文件后触发重新从公共仓库同步,即可从根本解决问题。

  • 方案4:临时调试方案
    如果仅本地临时调试,可以将google()、mavenCentral()等公共仓库添加到制品库配置的最顶部,优先拉取公共仓库的合法元数据,即可绕过私有仓库的损坏文件问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:39:04