在go modules里使用go get进行包管理的介绍


当前第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 // indirect

    github.com/chromedp/chromedp v0.1.3-0.20180717231922-bf52fed0d3e6

    golang.org/x/net v0.0.0-20180826012351-8a410e7b638d // indirect

)

如果我们现在想要添加额外的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 // indirect

    github.com/chromedp/chromedp v0.1.3-0.20180717231922-bf52fed0d3e6

    github.com/jinzhu/gorm v1.9.1 // indirect

    github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a // indirect

    golang.org/x/net v0.0.0-20180826012351-8a410e7b638d // indirect

)

我们看到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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...