简村消零派(洛九幽)

GO学习笔记(8) - 依赖与工具

2021-07-03  本文已影响0人  卡门001

目录

  1. GoPath + Govendor
  2. go.mod
  3. 其他依赖管理工具:glide、dep、go dep...
  4. 三阶段:GoPath 、GOVENDOR、 go.mod

GoPath + GOVENDOR

Gopath

- linux/unix
  ~/go
- windows
   %USERPROFILE%/go

---

- 源码: %GOPATH%/src
- 依赖包:%GOPATH%/src/mod
- go install结果:%GOPATH%/bin
- go env -w:获取环境变量
- go env -w GO111MODULE=on #设置环境变量
mkdir /tmp/gopathtest
go env  //查看环境变量 
export GOPATH= /tmp/gopathtest
cd /tmp/gopathtest
//将程序放在该目录下,源码保存在 %GOPATH%/src下
mkdir src

export GO111MODULE=off
go get -u -v github.com/kardianos/govendor

包依赖操作

  1. 用govendor从互联网下载包至%gopath%中
  2. govendor add +external 复制到vendor目录中
#进入到项目目录
//myproject为项目名
cd /home/gopath/src/myproject

#初始化vendor目录
govendor init

#查看vendor目录
[root@CC54425A myproject]# ls
commands  main.go  vendor  my_test.sh

#将GOPATH中本工程使用到的依赖包自动移动到vendor目录中
#说明:如果本地GOPATH没有依赖包,先go get相应的依赖包
govendor add +external
#缩写: govendor add +e 

#设置环境变量
#  GO15VENDOREXPERIMENT=1  (Go 1.6以上版本默认开启)
export GO15VENDOREXPERIMENT=1
1. 在当前目录下的 vendor 目录查找依赖的 package
2. 当前目录不存在 vendor 目录,则去上一级目录寻找
3. 重复步骤 2 直到进入 $GOPATH/src 目录
4. 没有在 vendor 目录中查找到依赖包,则进入 $GOROOT 目录查找依赖包
5. $GOROOT 目录也没有依赖包,则进入$GOPATH 寻找依赖包 

Go mod

Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。

download    下载依赖的module到本地cache
edit        编辑go.mod文件
graph       打印模块依赖图
init        在当前文件夹下初始化一个新的module, 创建go.mod文件
tidy        增加丢失的module,去掉未用的module
vendor      将依赖复制到vendor下,注意依赖需要在import 中声明后才能进行导入
verify      校验依赖
why         解释为什么需要依赖
go get ./...  命令可以查找出当前项目的依赖

打包命令

export GO111MODULE=off
export CGO_ENABLED=0
go build  -a -v -o app main.go
export GO111MODULE=on
export CGO_ENABLED=0
go build -mod=vendor -a -v -o app main.go

目录整理

project
   src/ # 源代码文件
   src/vender/ 依赖第三方库
   pkg/  # 编译后生成的包/库文件
   bin/   # 编译后生成的可执行文件

go多版本控制工具---gvm

上一篇下一篇

猜你喜欢

热点阅读