当前第2页 返回上一页
1 2 3 4 5 6 7 8 | module schanclient
require (
github.com/PuerkitoBio/goquery v1.4.1
github.com/andybalholm/cascadia v1.0.0
github.com/chromedp/chromedp v0.1.3-0.20180717231922-bf52fed0d3e6
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d
)
|
如果我们现在想要添加额外的package呢?
直接使用go get就可以了,比如我现在想用gorm往数据库存数据:
1 | go get github.com/jinzhu/gorm
|
更新后的go.mod
1 2 3 4 5 6 7 8 9 10 | module schanclient
require (
github.com/PuerkitoBio/goquery v1.4.1
github.com/andybalholm/cascadia v1.0.0
github.com/chromedp/chromedp v0.1.3-0.20180717231922-bf52fed0d3e6
github.com/jinzhu/gorm v1.9.1
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d
)
|
我们看到latest版本的gorm已经被添加了,当然因为我们在main module里没有import使用它,所以是indirect的。
如果我们想用v1.9的gorm:
1 | go get github.com/jinzhu/gorm@v1.9
|
很遗憾,版本选择是从大版本到小版本的顺序,如果有v1.9和v1.9.1,那么当你指定v1.9时会自动选取小版本号最高的版本,除非除了v1.9之外没有其他的v1.9.z的tag存在,在这里就是v1.9.1。
还有一点值得一提,go build和go test只会将go.mod中没有的package添加进去,不会覆盖或者改变go get引入的规则,所以不用担心他们会冲突。
是不是觉得和venv+pip很像,没错,这说明go的包管理工具也逐渐步入现代化了。
至于屏蔽package,删除package以及为package改名(比如golang.org/x/...的访问不了的package),这些是go mod edit的功能,具体的请查看go help mod edit。
推荐:go语言教程
以上就是在go modules里使用go get进行包管理的介绍的详细内容,更多文章请关注木庄网络博客!!
返回前面的内容
相关阅读 >>
Golang 进行文件夹的压缩与解压
26 Goroutine channel实现并发和并行(三)
Golang语言社区--游戏服务器编程说明
Go-struct
最清晰易懂的 Go waitgroup 源码剖析
Golang 创建型设计模式 简单工厂
聊聊Gost的hashset
Golang 在 runtime 中的一些骚东西
Go封装、继承、多态
聊聊dapr的metrics_utils
更多相关阅读请进入《Go》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » 在go modules里使用go get进行包管理的介绍