build.gradle.kts - 如何正确设置编译器参数?
build.gradle.kts - how to set compiler args correctly?
得到以下内容:
val commonCompilerArgs = listOfNotNull(
"-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop",
)
tasks {
compileKotlin {
kotlinOptions {
jvmTarget = "11"
freeCompilerArgs = commonCompilerArgs
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
}
但是出现这个错误:
无效参数:-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop
我想这很简单,但我不知道如何正确设置这个编译器参数。
感谢任何帮助!
如果您在 Micronaut 应用程序 gradle 脚本中使用 kapt,那么您可以这样设置它:
kapt {
arguments {
arg(
"micronaut.openapi.views.spec",
"rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop"
)
}
}
打开API定义文件和SwaggerUI是在注解处理阶段生成的,会生成源代码和资源文件。意思是在compileKotlin任务之前。
示例构建输出的一部分:
...
> Task :my-app:kaptGenerateStubsKotlin
> Task :my-app:processResources
> Task :my-app:detekt
> Task :my-app:processTestResources NO-SOURCE
> Task :my-app:kaptKotlin
Note: Generating OpenAPI Documentation
Note: Writing OpenAPI YAML to destination: /home/me/prj/my-app/backend/build/tmp/kapt3/classes/main/META-INF/swagger/my-app-1.0.yml
Note: Writing OpenAPI View to destination: /home/me/prj/my-app/backend/build/tmp/kapt3/classes/main/META-INF/swagger/views/swagger-ui/index.html
Note: Creating bean classes for 9 type elements
> Task :my-app:compileKotlin
> Task :my-app:compileJava NO-SOURCE
> Task :my-app:classes
...
更新: 您还必须将 Swagger 的 micronaut.router.static-resources 部分添加到 application.yaml 配置文件映射 swagger 静态路由,如下所示:
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/**
然后您可以在 http://localhost:8080/swagger/my-app-1.0.yml 上访问 OpenAPI 定义文件,Swagger UI 应该可以在 http: //本地主机:8080/swagger-ui .
得到以下内容:
val commonCompilerArgs = listOfNotNull(
"-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop",
)
tasks {
compileKotlin {
kotlinOptions {
jvmTarget = "11"
freeCompilerArgs = commonCompilerArgs
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "11"
}
}
}
但是出现这个错误:
无效参数:-Dmicronaut.openapi.views.spec=rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop
我想这很简单,但我不知道如何正确设置这个编译器参数。
感谢任何帮助!
如果您在 Micronaut 应用程序 gradle 脚本中使用 kapt,那么您可以这样设置它:
kapt {
arguments {
arg(
"micronaut.openapi.views.spec",
"rapidoc.enabled=true,swagger-ui.enabled=true,swagger-ui.theme=flattop"
)
}
}
打开API定义文件和SwaggerUI是在注解处理阶段生成的,会生成源代码和资源文件。意思是在compileKotlin任务之前。
示例构建输出的一部分:
...
> Task :my-app:kaptGenerateStubsKotlin
> Task :my-app:processResources
> Task :my-app:detekt
> Task :my-app:processTestResources NO-SOURCE
> Task :my-app:kaptKotlin
Note: Generating OpenAPI Documentation
Note: Writing OpenAPI YAML to destination: /home/me/prj/my-app/backend/build/tmp/kapt3/classes/main/META-INF/swagger/my-app-1.0.yml
Note: Writing OpenAPI View to destination: /home/me/prj/my-app/backend/build/tmp/kapt3/classes/main/META-INF/swagger/views/swagger-ui/index.html
Note: Creating bean classes for 9 type elements
> Task :my-app:compileKotlin
> Task :my-app:compileJava NO-SOURCE
> Task :my-app:classes
...
更新: 您还必须将 Swagger 的 micronaut.router.static-resources 部分添加到 application.yaml 配置文件映射 swagger 静态路由,如下所示:
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/**
然后您可以在 http://localhost:8080/swagger/my-app-1.0.yml 上访问 OpenAPI 定义文件,Swagger UI 应该可以在 http: //本地主机:8080/swagger-ui .