最后更新于

go mod 引用本地模块


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文件中的依赖关系

💡 提示:在发布到生产环境前,建议将本地模块发布到代码仓库,并更新为正式的版本号。