Go modules 使用

Go modules 使用

 

一、使用方式

  1. 首先完全开启 go modules
    三种模式: on/auto/off,默认为 auto: $GOPATH下的项目不开启,非$GOPATH下的开启
$ export GO111MODULE=on
  1. 在项目里初始化 go.mod
$ go mod init my-project-package-name
  1. 按需替换被墙的 module 地址
$ vi go.mod
replace (
    cloud.google.com/go => github.com/GoogleCloudPlatform/google-cloud-go latest
    golang.org/x/crypto => github.com/golang/crypto latest
    golang.org/x/net => github.com/golang/net latest
    golang.org/x/sync => github.com/golang/sync latest
    golang.org/x/sys => github.com/golang/sys latest
    golang.org/x/text => github.com/golang/text latest
    google.golang.org/appengine => github.com/golang/appengine latest
)
  1. 自动下载依赖的 module(同时删除掉无用的)
$ go mod tidy -v
  • -v 啰嗦模式
  • 完成后,生成go.modrequire部分,和go.sum文件
  • 可以在.gitignore中忽略掉go.sum,只需要保留go.mod
  • 依赖的 module 被文件下载到$GOPATH/pkg/cache/$GOPATH/pkg/mod/文件夹下了

二、问题修复

通过开启 useLanguageServer,修复 vscode 代码提示、跳转到定义等问题

$ go get github.com/saibing/bingo
{
  "go.alternateTools": {
    "go-langserver": "bingo"
  },
  "go.languageServerExperimentalFeatures": {
    "format": true,
    "autoComplete": true
  },
  "go.useLanguageServer": true
}

参考文档

三、切换回 Vendor 模式

目前 go mod 各方面支持还不够完善,如果想切换回 vendor 模式,可以通过下面两种方式

# 临时切换
$ go mod vendor
$ go run -mod=vendor main.go

# 或设置成全局环境变量
# export GOFLAGS=-mod=vendor
$ go run main.go

四、后续

用了一段时间 go mod 后,发现 vscode 目前的支持非常差,代码提示方面存在各种问题,提示速度也慢了很多,难以忍受,所以选择暂时放弃使用,待完善后再来。
目前切换成 dep 方式管理依赖包

# 初始化
$ dep init

# 整理依赖包
$ dep ensure

# 更新依赖版本
$ dep ensure -update

 

简书链接:https://www.jianshu.com/p/e8159888bb47

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值