在Windows上定义openapi生成器gradle插件的inputSpec问题



在Windows机器上的gradle项目中,我想从openapi规范生成Java代码,但是,我不知道如何指定inputSpec参数。为了简单起见,我描述了验证任务,因为问题也发生在那里。

plugins {
...
id "org.openapi.generator" version "6.2.1"
...
}
openApiValidate {
inputSpec = "src/main/resources/api/openapi.yaml"
}

导致Caused by: java.lang.RuntimeException: Could not find src/main/resources/api/openapi.yaml on the classpath

预料到我可能拼错了路径,我试图故意包含一个错别字

inputSpec = "src/main/resources/api/openapi.WRONG"

但是这会导致一个不同的异常

A problem was found with the configuration of task ':publisher-service:openApiValidate' (type 'ValidateTask').
> File 'C:devmyProjectsrcmainresourcesapiopenapi.WRONG' specified for property 'inputSpec' does not exist.

如果使用

inputSpec = "$projectDir/src/main/resources/api/openapi.yaml"

改成了java.net.URISyntaxException: Illegal character in opaque part at index 2: C:devmyProject/src/main/resources/api/openapi.yaml

下一次尝试使用绝对路径:

inputSpec = "/c/dev/myProject/src/main/resources/api/openapi.yaml"

同样,它在不同的地方失败了:

> File 'C:devmyProjectcdevmyProjectsrcmainresourcesapiopenapi.yaml' specified for property 'inputSpec' does not exist. 

注意这里有一些路径部分是重复的。

我试着在git bash和Intellij中运行gradle(准确地说是gradlew),没有区别。

你知道怎么解决这个问题吗?

似乎与org.openapi.generatorGradle插件的6.2.1版本有关。我已经在gitlab提交了一个bug报告:

https://github.com/OpenAPITools/openapi-generator/issues/14075

——编辑我最后也找到了一种方法来设置路径与6.2.1,这样:

inputSpec.set((new File("${projectDir}/src/main/resources/api/openapi.yml")).toString());

最新更新