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