spring-cloud-contract - Spring Cloud 合约 jar 版本控制
问题描述
我已经成功地在我的项目中的两个微服务之间建立了 Spring Cloud 合约。直到昨天一切都很好。
在消费者方面,我引用了最新版本的存根,如下所示:
@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:stubs:8080"})
但这在某些情况下会导致问题,即生产者方恢复其最新版本并切换回以前的版本。
或者
不知何故,包含当前存根的 jar 的版本低于 maven repo 中的最新版本。
Spring Cloud 合约中是否有办法执行以下任一操作?
1)配置消费者端获取当前项目版本(指 pom.xml 中的项目版本)而不是来自 maven repo 的最新版本?
或者
2) 将生产者端配置为具有静态版本的存根 jar,但保留其他项目 jar 的动态版本。这将允许消费者方引用相同的存根 jar 静态版本
解决方案
您可以使用提供的版本。我们给+
总是下载最新的。您可以设置一个具体的值,例如2.1.1.RELEASE
。您还可以设置范围。总而言之,我们在下面使用 Ivy,因此您可以查看 Ivy 的规则http://ant.apache.org/ivy/history/latest-milestone/settings/version-matchers.html
1)配置消费者端选择当前项目版本而不是最新版本?
是什么current
意思?是最新的吗?最新发布的?如果它是最新的发布选择+
,但指向仅包含发布版本而不包含快照的存储库。
本节缺少什么?您询问了静态存根,我们也在那里进行了描述@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:2.1.1:stubs:8080"})
。
推荐阅读
- c - 只能由我的应用程序使用的信号
- django - 为什么我会收到意外的关键字参数?
- macos - 如何使 instantiateController(identifier: creator:) 工作?
- api - 使用 Microsoft Graph api 创建 OnlineMeeting 时出现 Forbidden 403 错误
- distribution - 从 GLM 获取分布参数
- python - 无法访问 csv.dictreader 对象
- database - Hibernate:从数据库读取记录是否需要事务?
- c++ - 如何在不设置快捷方式的情况下在菜单栏上打印快捷方式文本?
- c++ - Fstream 无法识别相对路径
- spring-boot - Spring Boot 应用程序在 tomcat 服务器中无法正常工作