go语言工具

195 阅读2分钟

GOROOT

  1. go语言的安装目录,下面放着内置包

GOPATH

  1. 用于go install,这个目录下包含3个文件夹,src、pkg、bin
  2. 用于go get,下载版本包,默认下载到GOPATH/src文件夹下
  3. 使用export GOPATH=`pwd`同时会设置go env中的GOPATH

GOMOD

  1. 解决gopath只能用于一个项目的问题,多个项目需要切换gopath
  2. 解决不同项目通过不同gopath引入同一组件的问题
  3. 引入GoModule之后,不再直接在GoPath目录进行编程,而是把GoPath作为一个第三方依赖包的仓库,真正的工作空间在GoModule目录下
  4. 无法下载国外版本包,需要设置代理 go env -w GOPROXY=https://goproxy.cn,direct,如果是1.13之前的版本就少一个direct
  5. 包含module、go版本、依赖组件
  6. export GO111MODULE="on"

如何使用

带git的项目

git clonego mod init

不带git的项目

go mod init packagename

下载依赖

go mod downloadgo get go rungo build

拉取必须模块,移除不必要的

go mod tidy

但是如果tag的对应内容有更新,需要删除缓存

cd $GOPATH/pkg/mod;rm -rf *

更新依赖

方法一: 直接修改 go.mod 文件,然后执行 go mod download 方法二: go get packagename@v1.2.3,自动更新 go.mod 方法三: go run、go build 也会自动下载依赖

将依赖包下载到vendor目录

go mod vendor

替换本地包

  1. replace 可以是文件夹,也可以是另外一个package
module my-mod
require my/example/pkg v0.0.0
replace my/example/pkg v0.0.0 => github.com/example/pkg v0.0.0
  1. 文件夹
module my-mod

require my/example/pkg v0.0.0
replace my/example/pkg => ./pkg

go env 指令

  1. go语言的环境变量在这里
  2. GOARCH表示目标处理器架构
  3. GOBIN表示编译器和链接器的安装位置
  4. GOOS表示操作系统