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

Spring Cloud Contracts Stub版本解析异常:期望正式版优先于快照版

嘿,这个问题我之前也碰到过,Stub Runner默认的版本解析逻辑有时候确实会优先快照版,但除了移除快照仓库,还有几个实用的办法可以调整优先级:

解决方案1:显式指定目标正式版本

直接在配置里明确指定要使用的正式版版本号,这样Stub Runner就会跳过自动版本解析,直接使用你指定的版本:

stubrunner:
  repository-root: http://myreleased.repo,http://mysnapshot.repo
  work-offline: false
  ids: "com.example:Foo:0.0.1:stubs:jar"

这里的ids参数精准锁定了Foo的0.0.1正式版,不管仓库里有没有更新的快照版,都会优先加载这个指定版本。

解决方案2:配置版本解析策略为优先正式版

通过version-resolver-strategy参数设置解析策略为RELEASE,让Stub Runner优先挑选仓库里的最新正式发布版,只有当没有正式版时才会 fallback 到快照版:

stubrunner:
  repository-root: http://myreleased.repo,http://mysnapshot.repo
  work-offline: false
  version-resolver-strategy: RELEASE

这个方案不需要硬编码版本号,又能确保正式版的优先级,应该是最贴合你需求的选项。

解决方案3:用Maven版本范围限定正式版

如果你不想固定版本号,还可以用Maven的版本范围语法,限定只选择正式版本(默认不包含快照版):

stubrunner:
  repository-root: http://myreleased.repo,http://mysnapshot.repo
  work-offline: false
  ids: "com.example:Foo:[0.0.1,):stubs:jar"

这里的[0.0.1,)表示选择大于等于0.0.1的所有正式版本,快照版会被自动排除。

内容的提问来源于stack exchange,提问作者Łukasz Dęgus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:48:34