总结一下常用的go 指令

一 go get

通过代码管理工具远程拉取或更新代码包及其依赖包,并自动完成编译与安装。
使用示例:
go get -v -d xxxxxx/xxxx/xxx/…
// 代码会下载到 GOPATH 下面对应的目录
// go get 指令相比git clone指令,会下载依赖包
// 对vendor 项目而言,会直接下载vendor里面的项目,意思是即使该目录下代码修改过,
// 你也会下载修改过的代码
-u 递归更新包及其依赖包。
-v 显示指令
-d 只下载不安装

二 golang 包管理工具 govendor

安装:
go get -u -v github.com/kardianos/govendor
使用举例:

#初始化vendor目录
govendor init

#将GOPATH中本工程使用到的依赖包自动移动到vendor目录中
govendor add +external
或使用缩写: govendor add +e 

#从远程仓库添加或更新某个包(不会在 $GOPATH 也存一份)
govendor fetch golang.org/x/net/context
安装指定版本的包
govendor fetch golang.org/x/net/context@=v1  # Get the tag or branch named "v1".
// 更新项目vendor/code.byted.org/videoarch/datasdk目录下的所有文件
// ./...这个表示路径,代表当前目录下所有的文件
govendor fetch -v code.byted.org/videoarch/datasdk/...  

vendor.json 中记录了依赖包信息,该如何拉取更新
govendor sync
go test

go test -count=1 // 禁用test 缓存
go test ./… -v // 测试项目下的所有test函数
go test ./ -v // 测试目录下所有test函数, -v 可以看到详细的输出信息
go test ./ -v -run=xxx // 测试目录下名为XXX的test函数
go build -o XXX xxx.go // 编译并命名XXX的可执行文件 , ./XXX 就可以运行
go run ./xxx.go // 运行名为xxx的文件
// 基准测试,测试aa.go, bb.go里面Gin或HttpMux开头的函数
go test ./aa.go ./bb.go -bench=“Gin|HttpMux”
参考:go test 命令

go mod
  1. go mod init xxx/xx/xx
  2. go test // 测试过程中自动下载
  3. go get -u xxx/xx/xxx@v1.3.1
  4. go get -u // 自动更新项目的所有依赖
  5. go list // 示例:go list -m -versions code.byted.org/kite/kitc,列举出该模块的所有可获取版本
  6. go mod tidy. // 做模块清理
  7. go get -d -v ./… // 自动下载(-d标志只下载代码包,不执行安装命令;-v打印详细日志和调试日志。这里加上这个标志会把每个下载的包都打印出来;./…这个表示路径,代表当前目录下所有的文件)。
  8. 依赖问题
    由于众所周知的原因,大陆某些开源包是无法直接下载的,典型的比如:
    golang.org/xx 下的一系列包。
    以往在使用go vendor 管理项目依赖的时候,可以手动下载,并重名的方法来绕过这一问题,比如
    git clone https://github.com/golang/text $GOPATH/src/golang.org/x/text
    换用go mod 管理项目后,可以通过设置 Go module proxy 的办法来进行处理.

另外考虑到已有项目可能继续使用go vendor, 所以最好

export GO111MODULE=auto

这样在GOPATH/src目录下,vendor 可以继续正常使用

  1. go mod download
    将依赖下载至本地, 相比go get , 推荐使用这个命令。

参考 :
go mode 使用
go mode proxy
go mode 使用说明
官方使用文档

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值