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

Gradle Groovy与RestAssured Groovy版本冲突导致自动化测试运行报错

问题根因

这是典型的Groovy依赖版本冲突:

  • RestAssured 4.2.0配套的xml-path/json-path组件依赖Groovy 2.5.8版本
  • TestNG 7.4.0默认内置依赖Groovy 3.0.8版本
    两个版本的groovy-xml包同时被加载到classpath就触发了这个运行时异常。

解决方案

方案1:全局锁定Groovy版本(最稳妥)

在你的build.gradle根节点添加配置,强制全项目使用和RestAssured匹配的Groovy版本:

configurations.all {
    resolutionStrategy.force 'org.codehaus.groovy:groovy-all:2.5.8'
    resolutionStrategy.force 'org.codehaus.groovy:groovy-xml:2.5.8'
    resolutionStrategy.force 'org.codehaus.groovy:groovy-json:2.5.8'
}

该配置优先级高于所有依赖的传递依赖声明,会直接统一所有Groovy相关组件的版本。

方案2:升级RestAssured适配Groovy 3.0

把所有RestAssured相关依赖的版本从4.2.0升级到4.4.0及以上,4.4.0以上版本的RestAssured已经完成Groovy 3.0适配,可以和TestNG 7.4.0兼容:

compile group: 'io.rest-assured', name: 'rest-assured', version: '4.4.0'
compile group: 'io.rest-assured', name: 'json-schema-validator', version: '4.4.0'
compile group: 'io.rest-assured', name: 'json-path', version: '4.4.0'
compile group: 'io.rest-assured', name: 'xml-path', version: '4.4.0'

方案3:降级TestNG匹配现有RestAssured版本

把TestNG版本从7.4.0降到7.3.0,该版本TestNG依赖的Groovy版本为2.5.x,和RestAssured 4.2.0适配:

compile group: 'org.testng', name: 'testng', version: '7.3.0'

额外优化建议

你当前的依赖中重复声明了Appium Java客户端,io.appium:java-client和com.github.appium:java-client是同一包的不同镜像源,删掉其中一个即可,避免后续出现其他依赖冲突。

内容的提问来源于stack exchange,提问作者Agustín Jacob

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:03