使用openapi-generator-maven-plugin生成客户端执行mvn install无classes目录问题
问题根因
- 源码目录配置不匹配:你在插件
configOptions中指定了sourceFolder为src/gen/java/main,但Maven默认编译的源码目录为src/main/java,进入生成的client目录执行mvn install时,Maven无法识别到src/gen/java/main下的源码,不会执行编译逻辑,因此不会生成classes目录,主jar包也为空。 - 两个jar包的产生原因:openapi-generator默认会在生成的客户端pom中集成了
maven-source-plugin,会自动打包源码jar包,哪怕主jar没有编译出class文件,也会生成空的主jar和空的源码jar两个包。
解决方案
方案一:修改插件生成配置(推荐)
调整configOptions中的sourceFolder配置为标准Maven源码目录:
<sourceFolder>src/main/java</sourceFolder>
重新执行插件生成客户端后,进入对应目录执行mvn install即可正常编译源码、生成class文件和正确的jar包。
你当前配置的addCompileSourceRoot设为false是合理的,不需要修改,该配置的作用是避免把生成的客户端代码编译到当前父项目中,符合你单独打包客户端的需求。
方案二:修改生成后的客户端pom配置
如果需要保留src/gen/java/main的目录结构,可在生成的客户端pom的build节点中新增源码目录配置:
<build> <sourceDirectory>src/gen/java/main</sourceDirectory> </build>
再执行mvn install即可正常编译。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

