Spring Boot项目Gradle配置:用HashMap循环生成Swagger apiSource
Gradle中Swagger多apiSource的循环配置实现方法
可行的实现方式
Gradle基于Groovy,完全支持用循环简化重复的apiSource配置,直接用Groovy的each遍历配置列表即可,示例代码如下:
// 先定义所有Swagger配置详情 def swaggerDetails = [ [path: 'com.test.TestControllerV1', buildPath: "${buildDir}/documentation/v1/"], [path: 'com.test.TestControllerV2', buildPath: "${buildDir}/v2/"], [path: 'com.test.DummyControllerV1', buildPath: "${buildDir}/v1/"] ] swagger { swaggerDetails.each { detail -> apiSource { locations = [detail.path] schemes = ['http', 'https'] swaggerDirectory = detail.buildPath } } }
这段代码和你原来的逐个配置效果完全一致,Gradle会正确识别每个动态生成的apiSource闭包。
details的存储位置
有几种灵活的选择:
- 直接写在build.gradle里:像上面的示例一样,在swagger闭包外部定义,适合配置项不多的场景,直观方便。
- 抽成单独的Gradle脚本:如果配置项较多,新建一个
swagger-config.gradle文件,把swaggerDetails的定义放在里面,然后在主build.gradle中用apply from: 'swagger-config.gradle'引入,让主配置文件更简洁。 - 放在属性文件(可选):如果要和其他项目配置统一管理,也可以把路径信息写在
gradle.properties里,但需要额外解析成列表,操作起来不如前两种直接。
内容的提问来源于stack exchange,提问作者MrRobot9
相关产品推荐
相关产品推荐

