kotlin - 如何在 Gradle 中从 uri 生成 openapi 客户端

标签 kotlin gradle gradle-kotlin-dsl openapi-generator

我可能想做一些奇怪的事情,因为这似乎不是一个常见的问题(或者也许我问的都是错的)。我原以为这会很简单。

基本上,我正在寻找一种与以下方法相同的方法,除了使用 gradle openapi-generator 插件: openapi-generator 生成 -i www.example.com/openapi-doc -g spring

我尝试过以下内容(以及相关的错误):

  1. inputSpec.set("www.example.com/openapi-doc") --> Cannot convert URL {} to a file
  2. inputSpec.set(URL("www.example.com/openapi-doc").readText()) --> specified for property 'inputSpec' does not exist

实际的代码看起来像这样:

tasks.register<GenerateTask>("generateClient") {
    validateSpec
    generatorName.set("spring")
    library.set("spring-cloud")
//    inputSpec.set("$openapiSpecDir/client/openapi.json") <-- *I am currently using a file, which I don't want to do*
    inputSpec.set("https://www.example.com/openapi-doc")
    outputDir.set(generatedClientDir)
    apiPackage.set("org.example.api")
    modelPackage.set("org.example.model")
    skipOverwrite.set(false)
    templateDir.set("$rootDir/src/main/resources/openapi/templates/client")
    configOptions.put("java8", "false")
    configOptions.put("serializationLibrary", "jackson")
    configOptions.put("dateLibrary", "java8")
}

最佳答案

假设您使用 OpenAPI Generator Gradle Plugin ,在撰写此答案时,不支持从 URL 获取 inputSpec。然而,对于 Maven 来说,这已经实现了( Issue #2241PR #3826 关闭),因此很有可能通过功能请求来实现它,使 Gradle 插件与 Maven 对应物同等。

话虽这么说,您可能想查看 Gradle Download Task 。 Gradle Download Task 是一个插件,可让您从 URL 下载文件。下载的文件可用于将其输入 OpenAPI 生成器。

关于kotlin - 如何在 Gradle 中从 uri 生成 openapi 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66047718/

相关文章:

android - 无法在改造的错误主体中获得错误响应

Kotlin 嵌套枚举类

android - Gradle Kotlin DSL : Define Android build tools version in unique place

gradle - 如何使用 Gradle Kotlin-dsl 添加新配置

android - 获取 Kotlin 中当前函数的名称

kotlin - 使用 hashmap 键的 Smart Cast

java - 从Java文件获取gradle运行时配置

android - 第一次无法解决android gradle build的问题

java - Gradle 复制命令已弃用,会破坏构建

Gradle 允许不安全的存储库镜像