使用OpenAPI Generator生成Go模块时如何指定自定义模块路径?
自定义OpenAPI Generator生成Go模块的模块路径
使用OpenAPI Generator生成Go模块时,执行以下命令:
openapi-generator-cli generate \ --input-spec ../spec/myapi.yml \ --generator-name go \ --output ./generated/go \ --package-name myapi \ --global-property models,supportingFiles
生成的go.mod文件中模块路径默认是:
module github.com/GIT_USER_ID/GIT_REPO_ID go 1.18 require ( )
如何将github.com/GIT_USER_ID/GIT_REPO_ID替换为类似github.com/myrepo/somedir/myapi的自定义路径?
有几个可行的解决办法:
1. 生成时通过参数指定模块路径
直接在生成命令中添加--additional-properties moduleName=你的自定义路径参数,完整命令如下:
openapi-generator-cli generate \ --input-spec ../spec/myapi.yml \ --generator-name go \ --output ./generated/go \ --package-name myapi \ --global-property models,supportingFiles \ --additional-properties moduleName=github.com/myrepo/somedir/myapi
这个参数是Go生成器支持的配置项,可直接覆盖默认的模块路径模板值。
2. 修改生成器模板(长期复用场景)
如果需要固定使用自定义模块路径,可修改OpenAPI Generator的Go模板文件:
- 找到Go生成器的模板目录(通常在OpenAPI Generator安装目录下的
modules/openapi-generator/src/main/resources/go) - 编辑
module.mustache文件,将模板中的默认路径占位符替换为你的自定义路径 - 生成时通过
--template-dir参数指定自定义模板目录,确保生成时使用修改后的模板
3. 生成后批量替换(快速临时方案)
如果只是临时修改,直接用命令行工具替换生成的go.mod内容即可,比如用sed:
sed -i 's/github.com\/GIT_USER_ID\/GIT_REPO_ID/github.com\/myrepo\/somedir\/myapi/g' ./generated/go/go.mod
Windows环境可以用PowerShell的替换命令,或者直接手动编辑go.mod文件。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

