带有 Maven 插件的 OpenAPI 自定义生成器因 ClassNotFoundException 而失败
OpenAPI custom generator with Maven plugin fails with ClassNotFoundException
我正在尝试编写 openapi-generator 中提到的 OpenAPI 自定义生成器
在 GitHub 上。使用以下命令生成代码生成器。
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
在项目中,我从 JavaJAXRSCXFCDIServerCodegen
扩展了 MyCodegenGenerator
并添加了所需的小胡子模板。
当我尝试构建新的代码生成项目时,测试失败了。所以我跳过了测试并构建了项目。然后我继续执行指南中的后续步骤,以将自定义代码生成器与 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
,但仍然出现类似的错误。
请帮我解决这个问题。
我找到了问题的原因。我最初将以下依赖项添加到构建的依赖项部分。
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>my-codegen-openapi-generator</artifactId>
<version>1.0.0</version>
</dependency>
将依赖项添加到插件配置的依赖项部分后,我能够解决问题。
您不必修改 pom.xml。只需检查在您的 *Generator class 中,覆盖方法 getName() returns 与您在测试 class.[= 中调用 .setGeneratorName(..) 方法时使用的字符串相同。 10=]
此外,您还必须检查 .setInputSpec(..) 处的路径是否指向有效的 yaml 文件,但实际情况并非如此。
我正在尝试编写 openapi-generator 中提到的 OpenAPI 自定义生成器 在 GitHub 上。使用以下命令生成代码生成器。
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
在项目中,我从 JavaJAXRSCXFCDIServerCodegen
扩展了 MyCodegenGenerator
并添加了所需的小胡子模板。
当我尝试构建新的代码生成项目时,测试失败了。所以我跳过了测试并构建了项目。然后我继续执行指南中的后续步骤,以将自定义代码生成器与 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
,但仍然出现类似的错误。
请帮我解决这个问题。
我找到了问题的原因。我最初将以下依赖项添加到构建的依赖项部分。
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>my-codegen-openapi-generator</artifactId>
<version>1.0.0</version>
</dependency>
将依赖项添加到插件配置的依赖项部分后,我能够解决问题。
您不必修改 pom.xml。只需检查在您的 *Generator class 中,覆盖方法 getName() returns 与您在测试 class.[= 中调用 .setGeneratorName(..) 方法时使用的字符串相同。 10=]
此外,您还必须检查 .setInputSpec(..) 处的路径是否指向有效的 yaml 文件,但实际情况并非如此。