工作区允许我们同时处理多个模块,而无需go.mod为每个模块编辑文件。
相关信息
解决依赖关系时,工作空间中的每个模块都被视为根模块,会优先使用。
本篇中,创建一个新的文件夹 workspace
作为示例
bash# workspace
mkdir workspaces && cd workspaces
# 创建 modA 模块
mkdir modA && cd modA
go mod init modA
# 安装一个处理字符串的包
go get golang.org/x/example
go// 创建 modA/main.go
package main
import (
"fmt"
"golang.org/x/example/stringutil"
)
func main() {
result := stringutil.Reverse("Hello Workspace")
fmt.Println(result)
}
运行 main.go
bash// 在 workspace 目录下创建工作区 go work init
初始化工作区后,会创建一个 go.work
文件
bash// 将 modA 模块加入工作区 go work use ./modA
bash// 将 example 模块下在本地
git clone https://go.googlesource.com/example
bash// 将 example 模块添加至工作区 go work use ./example
现在,由于已经有了本地工作区中的 example 模块,工作区中会优先使用该模块,而非下载的模块或包
go// 修改本地模块中的 example/stringutil/reverse.go
package stringutil
func Reverse(s string) string {
return "已经使用了工作区的模块"
}
这时,再运行 main.go 可以发现已经使用了本地的模块中的功能
本文作者:Silon汐冷
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!