gradle 更改OpenApi信息块中的数据

f4t66c6m  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(124)

我正在尝试更改我的OpenApi信息块属性。
更具体地说,我试图通过编程方式更改OpenApi中版本标记的值,例如,每次新构建时,我都希望有一个新的版本号。
我尝试过使用占位符并在build.gradle中为它们赋值,但没有成功。
开放API:

openapi: 3.1.0
info:
  title: Dummy Bookshop
  summary: A fictitious API demonstrating the OpenAPI Specification's features
  version: ${apiVersion}
  description: A fictius description.
  termsOfService: https://www.dummy-book.shop/tos
  contact:
    name: Bookshop Support team
    url: https://www.dummy-book.shop/support
    email: support@dummy-book.shop
  license:
    name: Apache 2.0
    identifier: Apache-2.0
paths: {}

build.gradle:

ext {
    apiVersion = '1.0.1'
}

有没有人知道如何让这个工作或者有没有一个插件可以做到这一点?

vlju58qv

vlju58qv1#

在build.gradle中创建一个脚本,用gradle版本替换版本。使用groovy YamlSlurper可以轻松完成此操作。

task updateYaml() {
    def fileDir = "$projectDir/src/main/resources/static/"
    def fileName = "myOpenApi.yml"
    def reader = new FileReader(fileDir + fileName)
    def slurper = new YamlSlurper()
    def builder = new YamlBuilder()
    builder slurper.parse(reader)
    builder.content.info.version = project.version

    doLast {
        File newOASFile = new File(fileDir, "finalSpec.yml")
        newOASFile.write(builder.toString())
    }
}

任务运行后,正确设置依赖项。这里假设生成任务名为generateMyOpenApi

generateMyOpenApi.dependsOn updateYaml
processResources.dependsOn generateMyOpenApi

相关问题