Go Module是Golang 1.11版本引入的官方依赖管理工具。通常我们使用go mod导入的是互联网上的开源包,但在开发过程中,经常需要引用本地自己开发的模块。
🏗️ 配置示例
工具模块定义
module utils
公共模块定义
module site_common
go 1.17
require (
github.com/gin-gonic/gin v1.8.1
utils v0.0.0-00010101000000-000000000000
)
require github.com/go-sql-driver/mysql v1.6.0 // indirect
replace utils => ../../mods/utils
主项目定义
module toolSite
go 1.17
require (
site_common v0.0.0-00010101000000-000000000000
utils v0.0.0-00010101000000-000000000000
)
replace utils => ../../mods/utils
replace site_common => ../../mods/site_common
📁 目录结构
📝 配置要点
go mod引用本地模块需要满足以下两个关键要素:
🔢 版本号设置
utils v0.0.0-00010101000000-000000000000
本地模块使用特殊的版本号格式
🔄 Replace指令
replace utils => ../../mods/utils
replace site_common => ../../mods/site_common
使用replace
指令定义模块的实际路径
💡 最佳实践
- 相对路径:使用相对路径引用本地模块
- 版本管理:本地开发时使用固定版本号
- 模块结构:保持清晰的模块目录结构
- 依赖管理:及时更新go.mod文件中的依赖关系
💡 提示:在发布到生产环境前,建议将本地模块发布到代码仓库,并更新为正式的版本号。