本文介绍了Micronaut openAPI Swagger 不生成视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 mn --version
| Micronaut Version: 1.3.0.M1
| JVM Version: 13.0.1

My build.gradle is attached here:

build.gradle
--------------------------------------

plugins {
    id "net.ltgt.apt-eclipse" version "0.21"
    id "com.github.johnrengelman.shadow" version "5.1.0"
    id "application"
}



version "0.1"
group "hello.world"

repositories {
    mavenCentral()
    maven { url "https://jcenter.bintray.com" }
}

configurations {
//    // for dependencies that are needed for development only
    developmentOnly
}

dependencies {
    annotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
    annotationProcessor "io.micronaut:micronaut-inject-java"
    annotationProcessor "io.micronaut:micronaut-validation"
    annotationProcessor "io.micronaut.configuration:micronaut-openapi"
    compile "io.swagger.core.v3:swagger-annotations"
    implementation platform("io.micronaut:micronaut-bom:$micronautVersion")
    implementation "io.micronaut:micronaut-inject"
    implementation "io.micronaut:micronaut-validation"
    implementation "io.micronaut:micronaut-runtime"
    implementation "javax.annotation:javax.annotation-api"
    implementation "io.micronaut:micronaut-http-server-netty"
    implementation "io.micronaut:micronaut-http-client"
    runtimeOnly "ch.qos.logback:logback-classic:1.2.3"
    testAnnotationProcessor "io.micronaut:micronaut-inject-java"
    testAnnotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
    testImplementation platform("io.micronaut:micronaut-bom:$micronautVersion")
    testImplementation "org.junit.jupiter:junit-jupiter-api"
    testImplementation "io.micronaut.test:micronaut-test-junit5"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
}

test.classpath += configurations.developmentOnly

mainClassName = "hello.world.Application"
// use JUnit 5 platform
test {
    useJUnitPlatform()
}
tasks.withType(JavaCompile){
    options.encoding = "UTF-8"
    options.compilerArgs.add('-parameters')
    options.fork = true
    options.forkOptions.jvmArgs << '-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop'
}

shadowJar {
    mergeServiceFiles()
}

run.classpath += configurations.developmentOnly
run.jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')

当我进行 gradle 构建时,我收到以下警告:


When I do a gradle build, I get the following warnings:

gradle build

    > Task :compileJava
    warning: Supported source version 'RELEASE_11' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '13'
    Note: Generating OpenAPI Documentation
    Note: Writing OpenAPI YAML to destination: file:///Users/vkandas/Documents/OneDrive%20-%20Walmart%20Inc/Workspace2/hello-world/build/classes/java/main/META-INF/swagger/hello-world-0.0.yml
    warning: Supported source version 'RELEASE_11' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '13'
    warning: Supported source version 'RELEASE_11' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '13'
    Note: Creating bean classes for 9 type elements
    3 warnings

    > Task :compileTestJava
    warning: Supported source version 'RELEASE_11' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '13'
    warning: Supported source version 'RELEASE_11' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '13'
    warning: Supported source version 'RELEASE_11' from annotation processor 'org.gradle.api.internal.tasks.compile.processing.TimeTrackingProcessor' less than -source '13'
    Note: Creating bean classes for 2 type elements
    3 warnings

    Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    Use '--warning-mode all' to show the individual deprecation warnings.
    See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

    BUILD SUCCESSFUL in 11s
    12 actionable tasks: 12 executed

PROBLEM:

The swagger-ui is not generated. Also the static resources of swagger, although generated, is not served by micronaut.


application.yml



 micronaut:
      router:
        static-resources:
          swagger:
            paths: classpath:META-INF/swagger
            mapping: /swagger/**
          swagger-ui:
            paths: classpath:META-INF/swagger/views/swagger-ui
            mapping: /swagger-ui/**
      application:
        name: hello-world


Starting application is OK:



 gradle run

    > Task :run
    OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
    00:46:57.637 [main] INFO  io.micronaut.runtime.Micronaut - Startup completed in 810ms. Server Running: http://localhost:8080
    Starting V8 000
    Starting V8 111
    0
    1
    2
    3
    <=========----> 75% EXECUTING [1m 26s]
    > :run

----------问题---------

----------QUESTION---------

为什么没有生成 swagger-ui 视图?看起来有一些冲突,但不确定它们是什么.我正在做一个简单的测试,看看如何生成 swagger-ui.
请帮助提供一些见解.挣扎了几个小时.

Why are the swagger-ui views not being generated? Looks like there are some conflicts, but not sure what they are. I am doing a simple test to see how a swagger-ui can be generated.
Please help with some insight. Struggling with this for several hours.

推荐答案

看来您需要使用更高版本的 micronaut-openai 库.

It appears you need to use a later version of the micronaut-openai library.

将 gradle 文件中的依赖项更改为

Change the dependency in your gradle file to be

annotationProcessor "io.micronaut.configuration:micronaut-openapi:1.3.3"

这篇关于Micronaut openAPI Swagger 不生成视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-12 05:18