SpringCloud 我需要二进制存储吗?我不能使用Git吗?

2023-12-07 16:40 更新

在多语言的世界中,有些语言不使用二进制存储,例如Artifactory或Nexus。从Spring Cloud Contract版本2.0.0开始,我们提供了在SCM存储库中存储合同和存根的机制。当前唯一支持的SCM是Git。

存储库必须进行以下设置(您可以在此处检出):

.
└── META-INF
    └── com.example
        └── beer-api-producer-git
            └── 0.0.1-SNAPSHOT
                ├── contracts
                │   └── beer-api-consumer
                │       ├── messaging
                │       │   ├── shouldSendAcceptedVerification.groovy
                │       │   └── shouldSendRejectedVerification.groovy
                │       └── rest
                │           ├── shouldGrantABeerIfOldEnough.groovy
                │           └── shouldRejectABeerIfTooYoung.groovy
                └── mappings
                    └── beer-api-consumer
                        └── rest
                            ├── shouldGrantABeerIfOldEnough.json
                            └── shouldRejectABeerIfTooYoung.json

META-INF文件夹下:

  • 我们通过groupId(例如,com.example)对应用程序进行分组
  • 那么每个应用程序都通过artifactId(例如beer-api-producer-git)表示
  • 接下来,是应用程序的版本(例如0.0.1-SNAPSHOT)。从Spring Cloud Contract版本2.1.0开始,您可以指定以下版本(假设您的版本遵循语义版本)

    • +latest-查找存根的最新版本(假设快照始终是给定修订版本的最新工件)。这意味着:

      • 如果您有1.0.0.RELEASE2.0.0.BUILD-SNAPSHOT2.0.0.RELEASE版本,我们将假定最新版本为2.0.0.BUILD-SNAPSHOT
      • 如果您使用的版本为1.0.0.RELEASE2.0.0.RELEASE,我们将假定最新版本为2.0.0.RELEASE
      • 如果您有一个名为latest+的版本,我们将选择该文件夹
    • release-查找存根的最新版本。这意味着:

      • 如果您使用的版本为1.0.0.RELEASE2.0.0.BUILD-SNAPSHOT2.0.0.RELEASE,我们将假定最新版本为2.0.0.RELEASE
      • 如果您有一个名为release的版本,我们将选择该文件夹
  • 最后,有两个文件夹:

    • contracts-优良作法是将每个消费者所需的合同与消费者名称一起存储在文件夹中(例如beer-api-consumer)。这样,您可以使用stubs-per-consumer功能。进一步的目录结构是任意的。
    • mappings-在该文件夹中,Maven / Gradle Spring Cloud Contract插件将推送存根服务器映射。在使用者方面,Stub Runner将扫描此文件夹以使用存根定义启动存根服务器。文件夹结构将是在contracts子文件夹中创建的文件夹的副本。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号