add go module support zh/01.2.md

This commit is contained in:
vcaesar
2020-08-09 06:35:49 -04:00
parent eb67208433
commit 6cf45d667a

View File

@@ -1,8 +1,80 @@
# 1.2 GOPATH与工作空间
# 1.2 Go Module, GOPATH 与工作空间
前面我们在安装Go的时候看到需要设置GOPATH变量Go1.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