go mod代理和小技巧
- 代理
go mod的代理比较出名的有阿里的goproxy,可以基于它搭建一个私有的代理,管理内部的私有代码,而且微软提供了一个公共的代理,我们可以直接使用
Linux
export GOPROXY="https://mirrors.aliyun.com/goproxy/" export GO111MODULE=on
Windows 设置GOPROXY和GO111MODULE环境变量 这样google下的包可以顺利下载了,速度还挺快的。 - 小技巧
逃离GOPATH
毕竟有时候一个项目的代码可能使用多种语言,按照以前的方式,就非得把项目的代码都放在gopath下了,让我这种强迫症的人,很不爽。 现在发现使用go mod时,可以不用把代码放到GOPATH下面了,真是方便了许多。
人性化提示
有时候我们打开了一篇较旧的文章,使用了老的命令,这时候 go mod也会给出新命令的提示,比如<br /> $ go mod -fmt<br /> go: go mod -fmt is now go mod edit -fmt</p><p>$ go mod -init -module example/test<br /> go: go mod -init is now go mod init<br />
意思是说,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、新建项目 (更新,请使用阿里云的goproxy)

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 错误,可以临时关闭代理,go get的时候加上GOPROXY=''即可,即 GOPROXY='' go get xxx/pkg
作者:半山
出处:http://www.cnblogs.com/xdao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本