|
对于最新的稳定版本,请使用 spring-cloud-contract 5.0.0! |
如何进行小作品版本管理?
API 版本管理
版本管理到底是什么意思?如果你指的是API版本,有 不同的方法:
-
使用超媒体链接,绝不要以任何方式进行API版本化
-
通过头部和网址传递版本
我们不试图回答哪种方法更好。你应该随便选 这符合你的需求,并让你创造商业价值。
假设你已经给API做了版本。在这种情况下,你应该提供你支持的多个版本合同。 你可以为每个版本创建一个子文件夹,或者把它附加到合同名称后面——根据你的需求。
JAR版本管理
如果你说的版本管理是指包含存根的JAR版本,那么基本上有两种主要方法。
假设你做的是持续交付和部署,这意味着你生成一个新版本的 每次通过流水线时都会有瓶子,而且这个瓶子随时可以进入生产环境。比如,你的罐装版本 看起来是这样(因为它是在2016年10月20日20:15:21建成的):
1.0.0.20161020-201521-RELEASE
在这种情况下,你生成的存根罐应该是这样:
1.0.0.20161020-201521-RELEASE-stubs.jar
在这种情况下,你应该在你的内部application.yml或@AutoConfigureStubRunner什么时候
引用小作品,提供最新版本的作品。你可以通过路标来实现这一点。以下示例展示了如何实现:+
@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:stubs:8080"})
然而,如果版本控制是固定的(例如,1.0.4.发布或2.1.1你必须设定罐子的具体值
版本。以下示例展示了2.1.1版本的作方法:
@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:2.1.1:stubs:8080"})
开发或生产小作品
你可以作分类器,使测试对当前开发版本进行
其他服务的存根或已部署到生产环境的存根。如果你改变
你的构建是用短篇一旦进入生产,分类器
部署时,你可以在一种情况下用开发存根运行测试,另一种用生产存根运行测试。
以下示例适用于使用开发版本存根的测试:
@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:stubs:8080"})
以下示例适用于使用生产版本存根的测试:
@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:prod-stubs:8080"})
你也可以把这些值从部署管道的属性里传递出来。