如何为OpenAPI Generator CLI配置自定义生成器?遇名称拼写报错
你遇到的报错本质是自定义生成器的类没被OpenAPI Generator加载到,不是单纯的拼写问题,按下面的步骤排查修复:
把自定义生成器加入任务的Classpath
当前任务的classpath只包含了OpenAPI Generator的依赖,没包含你自己写的CustomGenerator类。修改openApiGeneratorConfig里的classpath,把当前项目的编译产物加进去:def openApiGeneratorConfig = { // 追加当前项目的编译输出到classpath classpath configurations.openApiGenerator + sourceSets.main.output mainClass = 'org.openapitools.codegen.OpenAPIGenerator' }如果你的自定义生成器是单独的Gradle模块,还要在当前模块的依赖里引入那个模块,比如
implementation project(':your-generator-module'),并把这个依赖也加到classpath里。确认生成器类的继承/实现
你的dev.rifaii.CustomGenerator必须继承org.openapitools.codegen.DefaultCodegen,或者实现org.openapitools.codegen.CodegenConfig接口,否则OpenAPI Generator不会把它识别为合法的生成器。核对类名和包名
再仔细检查一遍包名dev.rifaii和类名CustomGenerator有没有拼写错误,大小写是否一致,确保类文件的路径和包名完全对应(比如src/main/java/dev/rifaii/CustomGenerator.java)。可选:用注解指定生成器名称
如果给自定义生成器类加上@Generator注解,比如:@Generator(name = "custom-gen", description = "My custom API generator") public class CustomGenerator extends DefaultCodegen { // ... }之后就可以用
-g custom-gen代替全类名来指定生成器,更简洁,也能避免类名拼写问题。
内容的提问来源于stack exchange,提问作者dev-rifaii

