go mod代理和小技巧

  • 代理
    go mod的代理比较出名的有微软的athens,可以基于它搭建一个私有的代理,管理内部的私有代码,而且微软提供了一个公共的代理,我们可以直接使用
    Linux

    export GOPROXY="https://athens.azurefd.net"
    export GO111MODULE=on

    Windows 设置GOPROXY和GO111MODULE环境变量
    这样google下的包可以顺利下载了,速度还挺快的。
  • 小技巧
逃离GOPATH

毕竟有时候一个项目的代码可能使用多种语言,按照以前的方式,就非得把项目的代码都放在gopath下了,让我这种强迫症的人,很不爽。
现在发现使用go mod时,可以不用把代码放到GOPATH下面了,真是方便了许多。

人性化提示

有时候我们打开了一篇较旧的文章,使用了老的命令,这时候 go mod也会给出新命令的提示,比如
```
$ go mod -fmt
go: go mod -fmt is now go mod edit -fmt

$ go mod -init -module example/test
go: go mod -init is now go mod init
```
意思是说,go mod -fmt 现在是 go mod edit -fmt, go mod -init 现在是 go mod init,常见的命令可以参考这篇文章

指定版本

地址后面加"@",可以是commit、分支、tag等
go get github.com/someone/some_module@af044c0995fe

版本管理

代码里提交go.mod和go.sum文件,其他开发人员执行 go mod download

import路径

使用go mod后,import路径会以go mod init时的mod名称为该项目的根目录,比如:

go mod init test

在goland中在工程目录,mod名会以[]标出来,比如上图左侧的'test',

导入mod内部的代码则是以go.mod所在目录为根目录,且以mod名开始,而不是项目的目录,如上图右侧

依赖整理

go mod tidy

GoLand配置

1、新建项目

2、旧项目

3、常见错误

go: modules disabled inside GOPATH/src by GO111MODULE=auto; see 'go help modules'

go mod需要在GOPATH外

go mod init: go.mod already exists

go.mod文件已经存在

zip: not a valid zip file

代理服务器缓存的zip 错误,可以临时关闭代理,export GOPROXY=''

 

转载于:https://www.cnblogs.com/xdao/p/go_mod.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值