我正在尝试编写openapi-generator on GitHub中提到的OpenAPI自定义生成器。使用以下命令生成了代码生成。
java -jar modules/openapi-generator-cli/target/openapi-generator-cli.jar meta \
-o out/generators/my-codegen -n my-codegen -p com.my.company.codegen
在项目中,我从MyCodegenGenerator
扩展了JavaJAXRSCXFCDIServerCodegen
并添加了必需的胡子模板。
当我尝试构建新的代码生成项目时,测试失败。因此,我跳过了测试并建立了项目。然后,我继续进行指南中的后续步骤,以将自定义代码生成与Maven插件一起使用。如指南中所述,我将my-codegen
用作generatorName
:
<generatorName>my-codegen</generatorName>
我遇到以下错误:
org.openapitools.codegen.GeneratorNotFoundException:
Can't load config class with name 'my-codegen'
尝试过com.my.company.codegen.MyCodegenGenerator
和generatorName
并仍然遇到类似的错误。
请帮助我解决此问题。
答案 0 :(得分:1)
我能够找到问题的原因。我最初将以下依赖项添加到了构建的依赖项部分。
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>my-codegen-openapi-generator</artifactId>
<version>1.0.0</version>
</dependency>
将依赖项添加到插件配置的“依赖项”部分后,我能够解决该问题。
答案 1 :(得分:0)
您不必修改pom.xml。只需检查* Generator类中的重写方法getName()是否返回与在测试类中的.setGeneratorName(..)方法调用中使用的字符串相同的字符串即可。
此外,您还必须检查.setInputSpec(..)上的路径是否指向有效的Yaml文件,而不是开箱即用。