From 6cf45d667a18c9b14180f3b3cdcdd568d207d99c Mon Sep 17 00:00:00 2001 From: vcaesar Date: Sun, 9 Aug 2020 06:35:49 -0400 Subject: [PATCH] add go module support zh/01.2.md --- zh/01.2.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 3 deletions(-) diff --git a/zh/01.2.md b/zh/01.2.md index c99b6881..78284e45 100644 --- a/zh/01.2.md +++ b/zh/01.2.md @@ -1,8 +1,80 @@ -# 1.2 GOPATH与工作空间 +# 1.2 Go Module, GOPATH 与工作空间 -前面我们在安装Go的时候看到需要设置GOPATH变量,Go从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg +从 Go1.11 开始, Go 官方加入 Go Module 支持, Go1.12 成为默认支持; 从此告别源码必须放在 Gopath 中 +以及 Gopath 对初学者造成的困扰. -从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。 +## 使用 Go Module + +由于众所周知的原因, 要顺利安装 Go Module 的包, 需要先设置代理: + +公共模块代理: +```sh +export GOPROXY=https://goproxy.io // 也可以设置为 https://goproxy.cn 或者其他 +``` + +私有模块代理: +```sh +export GOPRIVATE=git.xxx.com +``` + +初始化: +``` +go mod init [module 名称] +``` + +检测和清理依赖: +``` +go mod tidy +``` + +安装指定包: +``` +go get -v github/com/go-ego/gse@v0.60.0-rc4.2 +``` + +### 更新依赖 +``` +go get -u +``` +更新指定包依赖: +``` +go get -u github.com/go-ego/gse +``` +指定版本: +``` +go get -u github/com/go-ego/gse@v0.60.0-rc4.2 +``` + +### Replace: + +使用命令行: +``` +go mod edit -replace github.com/go-ego/gse=/path/to/local/gse +go mod edit -replace github.com/go-ego/gse=github.com/vcaesar/gse +``` +也可以直接修改模块文件: + +``` +replace github.com/go-ego/gse => github.com/vcaesar/gse +``` + +## GOMODULE 常用命令: + +``` +go mod init # 初始化 go.mod +go mod tidy # 更新依赖文件 +go mod download # 下载依赖文件 + +go mod vendor # 将依赖转移至本地的 vendor 文件 +go mod edit # 手动修改依赖文件 +go mod graph # 打印依赖图 +go mod verify # 校验依赖 +``` + + +前面我们在安装 Go 的时候看到需要设置 GOPATH 变量,Go 从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg + +从go 1.8开始,GOPATH 环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。 ## GOPATH设置 go 命令依赖一个重要的环境变量:$GOPATH @@ -14,6 +86,7 @@ ```sh export GOPATH=/home/apple/mygo ``` + 为了方便,应该新建以上文件夹,并且上一行加入到 `.bashrc` 或者 `.zshrc` 或者自己的 `sh` 的配置文件中。 Windows 设置如下,新建一个环境变量名称叫做GOPATH: