【问题标题】:Generating Swagger/OpenAPI views in Micronaut when using Kotlin only仅在使用 Kotlin 时在 Micronaut 中生成 Swagger/OpenAPI 视图
【发布时间】:2019-12-09 15:01:34
【问题描述】:

https://micronaut-projects.github.io/micronaut-openapi/latest/guide/index.html 的官方文档仅描述了如何将 -Dmicronaut.openapi.views.spec=... 编译器标志添加到 JavaCompile Gradle 任务:

tasks.withType(JavaCompile) {
    options.fork = true
    options.forkOptions.jvmArgs << '-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop'
    ...
}

虽然在纯 Kotlin 项目中未使用此任务。我已经尝试过tasks.withType(compileKotlin),但没有成功。

谁能给我一个提示,如何在build.gradle(仍然是 Groovy)中为纯 Kotlin 项目传递编译器标志?

【问题讨论】:

标签: kotlin swagger-ui openapi micronaut


【解决方案1】:

我相信您正在寻找的东西(至少对于 OpenApi 的 Micronaut JVM 参数)是这样的:

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
    kotlinOptions {
        freeCompilerArgs += '-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop'
    }
}

See the Kotlin Docs on "Using Gradle -> Compiler Options" 了解有关如何为 Kotlin 编译步骤提供选项的更多信息(请确保您正在查看 Groovy Gradle 版本,因为您没有在 Gradle 文件中使用 Kotlin DSL)

This SO question seems to be asking a similar thing 也可能有用

我不认为fork 选项在kotlinOptions 中可用(我怀疑 KotlinCompile 已经在分叉进程中运行?不完全确定)

【讨论】:

  • 谢谢,“freeCompilerArgs”是正确的。我的“-D”选项仍然不起作用,因为 kotlinc 1.3.61 不提供“-D”并且“-Xjavac-arguments=”不适用于我的示例,但我问 Micronaut 开发人员他们到底想要归档什么。
  • 您能否澄清您所说的“但我问 Micronaut 开发人员他们到底想要存档什么。”?您希望在这里的 Micronaut 团队看到什么?
  • 我问过如何将编译器标志传递给 kotlinc,所以答案在技术上是正确的。但它不会使软件工作 :-) 更多关于 github.com/micronaut-projects/micronaut-openapi/issues/108
【解决方案2】:

这个对我有用:

kapt {
    arguments {
        arg("micronaut.openapi.views.spec", "redoc.enabled=true,rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop")
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-20
    • 2021-11-14
    • 1970-01-01
    相关资源
    最近更新 更多