如何解决如何在看似正确的“inputSpec”中修复 OpenAPI 错误以生成代码?
我正在尝试运行 OpenAPI 生成器,但我不断收到一条没有意义的错误消息。
Failed to execute goal org.openapitools:openapi-generator-maven-plugin:5.0.0-SNAPSHOT:generate (default-cli) on project miguelmunoz.challenge: The parameters 'inputSpec' for goal org.openapitools:openapi-generator-maven-plugin:5.0.0-SNAPSHOT:generate are missing or invalid
问题是我的 inputSpec
值指向一个有效的 .yaml 文件。该文件位于 src/main/resources/yaml/pizzeria.yaml
,我已使用复制和粘贴来确保该路径中没有拼写错误。您可以在 https://github.com/SwingGuy1024/OpenAPI_inputSpec_Bug 下载最低限度的可重现测试用例。
这是我的插件规范:
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- RELEASE_VERSION -->
<version>5.0.0-SNAPSHOT</version>
<!-- /RELEASE_VERSION -->
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!-- General Configuration properties taken from -->
<!-- https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator-maven-plugin/README.md -->
<!--Changed to https://github.com/OpenAPITools/openapi-generator/tree/master/modules/openapi-generator-maven-plugin-->
<!-- Modifications from https://stackoverflow.com/questions/64304049/how-to-create-a-spring-boot-rest-server-using-openapitools/64363872#64363872 -->
<ignoreFileOverride>${project.basedir}/my-springboot.ignores</ignoreFileOverride> <!--Added-->
<inputSpec>${project.basedir}/src/main/resources/yaml/pizzeria.yaml</inputSpec>
<!--the language tag was replaced by the generatorName tag:-->
<generatorName>spring</generatorName>
<!--<templateDirectory>${project.basedir}/src/gen/templates/</templateDirectory>-->
<!--<templateResourcePath>${project.basedir}/src/gen/templates/</templateResourcePath>-->
<!-- <output>${project.basedir}</output>-->
<!-- Defaults to ${project.build.directory}/generated-sources/openapi -->
<apiPackage>com.dummy.pizzeria.api</apiPackage>
<modelPackage>com.dummy.pizzeria.model</modelPackage>
<invokerPackage>com.dummy.pizzeria</invokerPackage>
<packageName>com.dummy.pizzeria.objects</packageName>
<groupId>neptunedreams</groupId>
<artifactId>pizzeria</artifactId>
<library>spring-boot</library>
<generateModelTests>false</generateModelTests>
<!--<output>${project.basedir}/my-springboot</output> <!– Added –>-->
<!--<generateSupportingFiles>false</generateSupportingFiles>-->
<configOptions>
<!-- configOptions are specific to the spring generator. These are taken from -->
<!-- https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/spring.md -->
<sourceFolder>gen</sourceFolder>
<bigDecimalAsString>true</bigDecimalAsString>
<dateLibrary>java8</dateLibrary> <!-- Default-->
<delegatePattern>false</delegatePattern>
<performBeanValidation>true</performBeanValidation>
<useBeanValidation>true</useBeanValidation>
<skipDefaultInterface>false</skipDefaultInterface>
<library>spring-boot</library>
<interfaceOnly>true</interfaceOnly>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
解决方法
使用maven的编译阶段
mvn clean compile
而不是直接使用插件
mvn openapi-generator:generate
说明:
诀窍是,不要直接调用插件,而是调用“mvn 干净的编译”。关于 maven 有点但令人困惑,但可以 我。对不起各位。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。