Golang到 1.11 版才出现 go module 这个官方的管理工具,通常我们使用go mod导入的包是互联网上开源的包,而如果想导入本地自己开发的模块,想直接本地引用,该如何配置呢?

go mod 引用本地模块参考例子如下

定义一个工具模块

1
module utils

定义一个公共模块

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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

定义一个一个toolSite项目

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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 引用本地模块的步骤包含以下两个要素:

要素1:引用模块使用版本号v0.0.0-00010101000000-000000000000

要素2:使用replace 模块名 => 模块路径 定义模块位置