推荐通过 maven 插件配置生成 Client。
对应的插件配置示例如下:
maven-clean-plugin
3.1.0
clean-additional-generated-files
generate-sources
clean
true
${project.basedir}/src/main/java
io.swagger
swagger-codegen-maven-plugin
2.3.1
generate
${project.basedir}/src/main/resources/template
${project.basedir}/src/main/resources/api.json
java
${project.basedir}
ContentInfo=com.tmall.pegasus.dms.common.result.ContentInfo
DataContent=com.tmall.pegasus.dms.common.params.DataContent
DeliveryInfo=com.tmall.pegasus.dms.common.result.DeliveryInfo
FieldInfo=com.tmall.pegasus.dms.common.result.FieldInfo
ResourceInfo=com.tmall.pegasus.dms.common.result.ResourceInfo
com.tmall.pegasus.dms.client
com.tmall.pegasus.dms.client.api
com.tmall.pegasus.dms.common.result
feign
src/main/java
${project.basedir}/.swagger-codegen-ignore
第一个插件是 maven-clean-plugin,它帮助我们 clean 掉上次生成的代码,第二个就是 maven-swagger-codegen 插件,可以看出里面的配置非常丰富,各个配置的含义都可以在 官方文档 找到,有几个配置我觉得会常用到,下面简单介绍下。
importMappings 当你不想用 Swagger Codegen 自己生成的 Model 类,而是想用自己 Common 包里的 Model 时,你可以用该配置实现,配置项就是一个个的映射关系,在 Codegen 的时候会将 Model 引用替换成你设置的值。
apiPackage 就是你接口的包名
library Codegen 默认支持多种 http client ,你可以通过该参数指定。
ignoreFileOverride 就是 .swagger-codegen-ignore 对应的路径。
templateDirectory 你如果想自定义生成 Client 代码,可以通过自定义 Generator 实现,你如果只是想对系统生成的 Client 做微小调整,可以通过修改系统自带的的 Template 实现。方法就是把 Swaggen Codegen 的模板文件拷贝一份到你的 src/main/resources 里,直接改里面的文件,同时记得配置 templateDirectory 的路径,再重新生成即可。