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

如何用Gradle按API生成Stub?仅构建api1的方案咨询

用Gradle仅为api1生成Stub的方案

嘿,这就给你说清楚怎么用Gradle只针对api1生成Stub,完全适配你的文件结构:

1. 确保引入Spring Cloud Contract Gradle插件

首先得在你的build.gradle里配置好必要的插件,这是基础:

plugins {
    id 'org.springframework.boot' version '你的Spring Boot版本'
    id 'io.spring.dependency-management' version '对应的依赖管理版本'
    id 'org.springframework.cloud.contract' version '匹配的Spring Cloud Contract版本'
}

2. 配置插件只处理api1的合约

你可以通过两种方式精准指定只处理api1目录下的合约:

方式一:直接指定合约根目录到api1

这种方式最简单,直接让插件只扫描api1下的所有合约文件:

springCloudContract {
    // 直接指向api1的合约目录,插件只会处理这里的内容
    contractsDslDir = file("src/main/resources/contracts/api1")
}

方式二:通过路径过滤精准匹配

如果需要更细粒度的控制(比如只处理api1下某个消费者的rest合约),可以用includes来匹配路径:

springCloudContract {
    // 只包含api1目录下所有rest结尾的合约文件
    includes = ["api1/**/*rest"]
}

3. 生成Stub

配置好之后,运行Gradle的generateStubs任务就行:

./gradlew generateStubs

执行完之后,插件就只会为api1相关的合约生成对应的Stub了,生成的Stub会在build/stubs目录下。

补充说明

你提到的@AutoConfigureStubRunner注解可以正常配合生成的Stub使用,比如:

@AutoConfigureStubRunner(workOffline = true, ids = "com.example:your-api1-producer-stubs", stubsPerConsumer = true, consumerName = "consumer1")

只要确保ids指向你生成的api1 Stub的坐标即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:36:02