Go Module 依赖包管理 - Replace
Posted by 渐行渐远 on Monday, May 2, 2022 共331字module 用来定义当前项目的模块路径,这个路径会作为其他命令路径的参考。比如,replace 命令指定模块到本地的时候,使用的相对路径就是模块路径。
replace 用来将一个模块替换成另外一个模块版本,格式为 $module => $newmodule。除了手动编辑 go.mod 文件外,还可以在命令行输入编辑指令
go mod edit -replace $module=$newmodule
replace 的目标路径形式比较多,可以指定到项目本地路径,也可以是网络的路径。在本地调试一些依赖包的时候,就可以将依赖包下载到项目中,通过 replace 来替换网络地址
我们通过一个例子来说明,我们项目本地依赖了 lru 缓存,main 函数的逻辑:
package main
import (
"fmt"
"github.com/golang/groupcache/lru"
)
func main() {
cache := lru.New(1)
fmt.Println(cache.Len())
}
对应的 go.mod 文件内容如下,如果我们想要调试 groupcache 包,第一步将 groupcache 包下载到本地,第二步增加 repace 命令替换当前 require 中的代码包。第三步直接调试本地 groupcache 包就可以啦
module local/awesomeProject
go 1.18
require github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da