如何在 build.gradle.kts 中设置 openApi 生成器全局属性

Posted

技术标签:

【中文标题】如何在 build.gradle.kts 中设置 openApi 生成器全局属性【英文标题】:How can i set openApi generator global properites in build.gradle.kts 【发布时间】:2020-10-28 04:21:51 【问题描述】:

我在 build.gradle.kts 中设置全局属性时遇到问题 开放 api 生成器插件中的示例如下所示

openApiGenerate 
// other settings omitted
    globalProperties = [
        modelDocs: "false",
        apis: "false"
    ]

以上代码应该在 build.gradle 中使用。我试图把它放在 build.gradle.kts 文件中,到目前为止没有运气。我正在使用 org.openapi.generator 4.3.1 插件。如何将其转换为 kotlin?

【问题讨论】:

【参考方案1】:

你可以使用:

openApiGenerate 
    globalProperties.set(
        mapOf(
            "apis" to "false",
            "models" to "false"
        )
    )

【讨论】:

【参考方案2】:

我刚刚发现在新版本的 gradle 中 globalProperties 应该替换为系统属性 这是解决方案:

openApiGenerate 
    systemProperties.put("models", "")

【讨论】:

+1 用于属性的 setter 方法。我不知道这是否是最好的方法。仍然对为什么 Kotlin DSL 似乎不想使用 OpenAPI Generator 插件播放“正常语法”感到困惑。【参考方案3】:

我已经解决了:

openApiGenerate 
    generatorName.set("kotlin")
    inputSpec.set("$projectDir/src/main/resources/api-docs-v3.json")
    outputDir.set("$buildDir/generated")

【讨论】:

以上是关于如何在 build.gradle.kts 中设置 openApi 生成器全局属性的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 kotlinscript DSL (build.gradle.kts) 通过 url 添加 maven 存储库

如何将 ext.* 变量放入 build.gradle.kts 中的插件块中

在 build.gradle.kts 中添加后无法导入类

【白水日记】使用build.gradle.kts

未解决的参考:build.gradle.kts 中的 compileKotlin

未解决的参考:build.gradle.kts中的KotlinCompilerVersion