Go Module

Go Module 使用

使用方式

推荐阅读这边文章,讲得比较清楚和使用:  go module 基本使用 - ChnMig - 博客园

# 初始化Go Module
cd xxx/xxx/test/
go mod init test(test为项目名,比如说gitlab.sz.sensetime.com/viper/infra/infra-ips-operator)

# tidy会检测该文件夹目录下所有引入的依赖,写入 go.mod 文件, 写入后你会发现 go.mod 文件有所变动
go mod tidy

# 我们需要将依赖下载至本地,而不是使用 go get
go mod download

# 导入依赖,执行此命令,会将刚才下载至 GOPATH 下的依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下
go mod vendor

# 其他命令
go mod edit  # 手动修改依赖文件
go mod graph  # 打印依赖图
go mod verify  # 校验依赖

注意事项

  • 要注意的是, 在项目管理中,如使用git,请将 vendor 文件夹放入白名单,不然项目中带上包体积会很大. git设置白名单方式为在git托管的项目根目录新建 .gitignore 文件
  • go.mod和go.sum文件
    • go.mod文件
      • 只标识了项目名和go的版本,这是正常的,因为只是初始化了
    • go.sum
      • go.sum的核心是基于go.mod下载的文件进行哈希并记录下来,避免有黑客篡改依赖包
      • 考虑到下载的依赖包有可能是被黑客恶意篡改的,以及缓存在本地的依赖包也有被篡改的可能,单单一个go.mod文件并不能保证一致性构建。
      • 是一个构建状态跟踪文件

参考资料

如何使用GoProxy

Goproxy.cn 完全实现了 GOPROXY 协议。并且它是一个由中国备受信赖的云服务提供商七牛云支持的非营利性项目。我们的目标是为中国的 Gopher 们提供一个免费的、可靠的、持续在线的且经过 CDN 在全球范围内加速的模块代理。请在 status.goproxy.cn 订阅我们的有关系统性能的实时和历史数据。

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

参考 goproxy.cn/README.zh-CN.md at master · goproxy/goproxy.cn

如何导入本地包?

Go官方并不推荐这种用法。import本地的module需要借助replace指令来实现。

参考 go module不在GOPATH中如何导入本地包? - 知乎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值