Go mod 的使用

mod是模块英文modules的简写。

列举一些常用的命令行:

go help modgo mod init <项目模块名称>go.mod<项目模块名称>go mod tidygo mod vendorgo build -mod=vendorgo list -m allgo list -m -json allgo list -m -versions go mod download go help mod

另外:
go.mod文件是文本文件,是可以自己手动编辑的。
Go模块版本控制的下载文件及信息会存储到GOPATH的pkg/mod文件夹里。
使用了Go模块,源码不一定要在GOPATH中进行。

使用示例

go.mod文件

module github.com/wuyumin/easydoc

require (
    github.com/BurntSushi/toml v0.3.0
    github.com/mostafah/fsync v0.0.0-20151120150823-6c37e2827238
    github.com/russross/blackfriday v1.5.1
)

Git建议

go.mod文件必须要提交到git仓库,但go.sum文件可以不用提交到git仓库(git忽略文件.gitignore中设置一下)。

问题解答

.gitattributes
go.mod text eol=lf
go get xxxgo.modgo.mod
require (
    mytest v0.0.0
)
replace (
    mytest v0.0.0 => ../mytest
)
  • 问:如何获取依赖的特定版本?

    答:go get可以在末尾加@符号,用来指定版本。

go get github.com/gorilla/mux           #匹配最新的一个tag
go get github.com/gorilla/mux@latest    #跟上面一样
go get github.com/gorilla/mux@master    #匹配master分支
go get github.com/gorilla/mux@v1.6.2    #匹配v1.6.2
go get github.com/gorilla/mux@c856192   #匹配commit的SHA-1码的版本
v1.2.0

参考资料