我是靠谱客的博主 哭泣钥匙,最近开发中收集的这篇文章主要介绍Go 1.11 modules的填坑之旅,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

go modules炒得火热,今早学习下,整体挺好的,入手快捷,只是在配置被墙掉的包时,发现有点点小坑,现与学友分享学习。

在测试Emitter时,需要用到"golang.org/x/net"包,go mod拉取不到的原因就不废话了。

试用 go mod edit 命令,有两个flag:

1、-require=path@version  :手动加入依赖包;

2、-replace=old[@v]=new[@v]:用新的包替换require里面的原包;

help介绍还算清楚,就是卡在包的版本号上了,因为本人没查到"golang.org/x/net"的版本号,下面就开始填坑之旅:

1、尝试 go mod edit -require=golang.org/x/net@latest 或者go mod edit -require=golang.org/x/net@master

2、执行 go mod edit -replace=golang.org/x/net@latest=github.com/golang/net@latest,都提示错误

go: errors parsing go.mod:
invalid module version "latest": version must be of the form v1.2.3

what?不能用latest,必须是v1.2.3格式。难为了好一阵,请教网友也未解决,都想放弃了。

就想试试随便输个v0.0.0吧,然后……居然没提示错误!有戏,执行go build通过,哎我去,真是奇葩!
现总结下 go modules操作步骤:

1、go mod init emitter;在项目根目录执行,初始化go mod,emitter是module名称,随便自己定义;

2、go mod tidy;go mod会检查当前项目依赖的源码包,下载之并在go.mod中自动维护require包版本控制;

3、go mod edit -require=golang.org/x/net@v0.0.0;手动加入被墙的包(原始包),一定要记住版本号,实在不知道的话,就试试v0.0.0;

4、go mod edit -replace=golang.org/x/net@v0.0.0=github.com/golang/net@latest;用新的包路径替换掉被墙的原始包,在这里新的包版本可以使用latest和master,这个有点人性了!

5、go build;build项目,没啥别的被墙的包,应该可以顺利成功的;

以上就是初试go modules,如有不正确之处,请批评指正,谢谢。

 

 

最后

以上就是哭泣钥匙为你收集整理的Go 1.11 modules的填坑之旅的全部内容,希望文章能够帮你解决Go 1.11 modules的填坑之旅所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部