modules
是Go 1.11
版本提出的一个依赖包管理系统。
自己如何创建module
之前在Go1.1.1新功能module的介绍及使用文中中介绍了module
功能,以及如何使用别人已经制作好的module
。这一节我们来看看如何自己创建module
来让别人使用。
-
首先创建一个包,命名为
testmod
。但是需要注意:testmod
目录必须在$GOPATH
目录之外。默认情况下,$GOPATH
目录下module
功能是无法使用的。 -
然后进入
testmod
目录,创建一个简单的testmod.go
文件。
package testmod
import "fmt"
// SayHello returns a friendly greeting
func SayHello(name string) string {
return fmt.Sprintf("Hello, %s", name)
}
目前testmod
包不能称为一个module
,现在我们来改变它。在命令行执行下面的命令(前提是你有github
仓库或者可以存放你代码的仓库),下面go命令中的github.com/benben2015/testmod
是我为testmod
创建的仓库地址。
go mod init github.com/benben2015/testmod
# go: creating new go.mod: module github.com/benben2015/testmod
上面将会在testmod
目录下创建一个go.mod
的文件,内容如下:
module github.com/benben2015/testmod
这样我们就把testmod
包变成了module
,现在我们将代码push
到远程仓库,这样其他人就可以使用go get
命令来使用它了。
git push -u origin master
别人如何使用module
Go modules
的版本控制遵循语义化版本,划重点 尤其是Go
会使用仓库的标签来查找版本。例如:版本2应该和版本1,版本0有很大不同。默认情况下,Go
会fetch
仓库中最新的带有标签的可用版本。
Module的版本控制
使用git tag
命令来发布我们的1.0.0
版本。
git tag v1.0.0
git push --tags
上面的命令将会在仓库中的当前代码上创建tag
,作为我们的版本1.0.0
。虽然Go
没有强制创建个新分支来发布主版本的一些修复版本,但是建议这样。