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

Spring Cloud Contract无法标记合约为inProgress()的问题排查求助

Spring Cloud Contract inProgress() 导致contractTest任务报错(无详细日志)调试思路

我们尝试用inProgress()标记某份Spring Cloud Contract合约,代码如下:

Contract.make {
  inProgress()
  description "should do a thing"

  request {
    //request definition here
  }

  response {
    //response definition here
  }
}

移除inProgress()后项目构建、运行均正常,但添加该配置后执行Gradle的contractTest任务时出现错误:

Spring Cloud Contract Verifier Plugin exception: Process 'command 'C:\path\to\jdk\bin\java.exe'' finished with non-zero exit value 1

无详细堆栈跟踪或日志说明实际错误原因,使用版本为spring-cloud-contract-dependencies:4.0.1,以下是具体调试思路:

  • 提升日志输出级别:执行Gradle任务时添加日志参数,比如 ./gradlew contractTest --info 或 ./gradlew contractTest --debug。这两个参数会输出插件执行的详细过程,能帮你定位到具体的报错环节。
  • 校验合约DSL语法:确认inProgress()的位置为合约顶层配置(不能嵌套在request/response块内),同时检查合约其他部分是否存在语法疏漏——有时候inProgress()会触发原本隐藏的语法问题。
  • 单独运行目标合约测试:如果项目存在多份合约,用Gradle测试过滤功能单独运行标记了inProgress()的合约测试,避免其他合约干扰。命令示例:./gradlew contractTest --tests "*YourContractRelatedTestClass*"。
  • 检查生成的测试代码:Spring Cloud Contract会自动生成测试类,默认路径为build/generated-test-sources/contracts。找到对应合约的生成代码,手动编译验证是否存在语法错误,或逻辑不符合预期的情况。
  • 验证JDK兼容性:Spring Cloud Contract 4.0.x版本要求JDK 17及以上,确认当前使用的JDK版本符合要求,低版本JDK可能导致执行失败。
  • 核对插件配置:检查build.gradle中的Spring Cloud Contract插件配置,比如contracts块的各项设置,确认是否存在与inProgress()冲突的严格模式或其他配置。
  • 清理构建缓存:执行./gradlew clean后重新运行contractTest,缓存的旧构建文件可能引发此类无明确日志的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:22:13