通用技术 go mod 解决 Go 语言的包依赖问题

codeskyblue · 2018年11月22日 · 最后由 回复于 2018年11月23日 · 3063 次阅读

受众

学习过 Go 的人,入门即可

go mod 命令

随着 Go 1.11 的发布,go 开始支持 mod 子命令

这个命令解决了 Go 依赖更新的问题。刚开始学起来有一点难度,不过学会了之后,会发现这玩意比原来的 vendor 好太多。
官方还专门弄了一个https://goproxy.io网站,专门方便我们这些国内的用户。

先看下自带的帮助。

$ go mod
Go mod provides access to operations on modules.

Note that support for modules is built into all the go commands,
not just 'go mod'. For example, day-to-day adding, removing, upgrading,
and downgrading of dependencies should be done using 'go get'.
See 'go help modules' for an overview of module functionality.

Usage:

        go mod <command> [arguments]

The commands are:

        download    download modules to local cache
        edit        edit go.mod from tools or scripts
        graph       print module requirement graph
        init        initialize new module in current directory
        tidy        add missing and remove unused modules
        vendor      make vendored copy of dependencies
        verify      verify dependencies have expected content
        why         explain why packages or modules are needed

Use "go help mod <command>" for more information about a command.

想学好 go mod 命令,推荐 3 篇文章,阅读顺序有先后。

  1. https://roberto.selbach.ca/intro-to-go-modules/

    这是Roberto Selbach大神写的这篇 Step by step 的 go mod 入门文章,非常好理解

  2. https://github.com/golang/go/wiki/Modules

    go mod 的官方文档,想了解的多一点最好还是通读一下

  3. https://roberto.selbach.ca/go-proxies/

    最后还有一篇介绍 GOPROXY 的文章,比较适合对 go mod 熟悉之后再看

使用感受

感觉 go mod 应该是受了 npm 的 package.json 启发,总体而言比过去的 vendor 好了很多,但是如果要修改依赖库,还需要再重新发布个版本,感觉调试起来不是很方便。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞

多谢大佬分享,平时都是去 golang 中国下载第三方包解压。。。

codeskyblue 专栏文章:2018年 终总结 中提及了此贴 02月18日 10:26
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册