带有Maven插件的OpenAPI自定义生成器因ClassNotFoundException

时间:2019-09-30 19:42:45

标签: maven openapi openapi-generator

我正在尝试编写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.MyCodegenGeneratorgeneratorName并仍然遇到类似的错误。

请帮助我解决此问题。

2 个答案:

答案 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文件,而不是开箱即用。