在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Golang升级到1.13.x之后,使用"go mod"来改造原有的Project遇到了很多坑,今天来总结一下go mod的用法。 1. GO111MODULE"go mod"即go module。 要使用 一般在golang 1.13.x 安装时配置好环境变量即可,Ubuntu下设置见上篇: Golang 升级1.13+ 后的配置
2. 已有项目(go mod改造)2.1 使用远程包 假设你已经有了一个go 项目, 比如在 然后你可以通过 通过 gomod中根据第三方的指定版本进行编译,如我要拿v1.4.9的fabric导入而非最新版本: module xxx go 1.15 replace github.com/hyperledger/fabric => github.com/hyperledger/fabric v1.4.9 2.2 使用本地包 比如原有项目使用本地路径的我修改过的fabric-sdk-go的包,下载load远程包的话会build出错,可以用replace来转用本地包。 编辑项目下go.mod文件,加上一行用replace来替换包路径:
module go-example go 1.13 require ( github.com/bitly/go-simplejson v0.5.0 github.com/ghodss/yaml v1.0.0 github.com/hyperledger/fabric-sdk-go v1.0.0-beta1 github.com/pkg/errors v0.9.1 ) replace github.com/hyperledger/fabric-sdk-go => /home/bear/go/src/github.com/hyperledger/fabric-sdk-go
3. 新的项目你可以在
4. go mod命令
5. FQ在国内访问 replace ( golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac => github.com/golang/crypto v0.0.0-20180820150726-614d502a4dac golang.org/x/net v0.0.0-20180821023952-922f4815f713 => github.com/golang/net v0.0.0-20180826012351-8a410e7b638d golang.org/x/text v0.3.0 => github.com/golang/text v0.3.0 )
依赖库中的 所以如果想编译那个项目,就在哪个项目中增加
6. 版本格式以下版本格式都是合法的: gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 gopkg.in/vmihailenco/msgpack.v2 v2.9.1 gopkg.in/yaml.v2 <=v2.2.1 github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e latest
7. go get 升级
8. go mod vendor
9. go module, vendor 和 Travis CIhttps://arslan.io/2018/08/26/using-go-modules-with-vendor-support-on-travis-ci/
阅读文档资料: https://github.com/golang/go/wiki/Modules https://roberto.selbach.ca/intro-to-go-modules/
|
请发表评论