1 )概述
replace
语句,将远程包替换成本地包的路径
2 )演示
目录结构如下
workspace
比如,这里 pkg 包的go.mod中声明该包属于 gitlab 平台的,例如: module gitlab.com/xxx/pkg
实际上,并没有在我们的gitlab平台上创建这样一个仓库,这个时候,我们拉取这个包,是拉取不到的
go mod tidy
是找不到这样一个包的现在不通过上传这个包的情况下,在project项目中,使用这个包内的属性或方法
在 workspace 目录下初始化一个工作区 $ go work init pkg project
之后,在当前目录下,为我们生成一个 go.work 的文件, 内容如下
go 1.20
use(
./gkg1
./project
)
使用这种方式,不用关心私有包是否上传到远程仓库,即可互相调用
在开发私有包的时候,就可以使用这个 workspace 目录在本地开发完之后
将我们这些包及工程代码分别提交到远程仓库
在实际项目中,多个模块之间,可能还存在其他的依赖
可以在 gowork 所在的目录,也就是我们这个 workspace目录
执行一个 $ go work sync
这个命令就可以同步工作区下面的工程依赖