我们为什么要创建自己的 module?原因有二:
- 不用再一遍又一遍的写重复代码
- 可以持续迭代优化我们写出的代码
希望在阅读本篇文章后,您可以成功创建出自己的 module。
创建 mymodule
-
在
GitHub中创建一个仓库mymodule,然后clone到本地$ git clone git@github.com:gh-zhangpeng/mymodule.git -
进入我们刚刚
clone下来的仓库中$ cd mymodule && vim hello.go -
编写我们需要放入
module中的代码package mymodule import ( "fmt" ) func Hello(name string) string { return fmt.Sprintf("Hello, %s", name) } -
生成
go.mod文件使用我们在第一步中创建的仓库,生成我们
mymodule的go.mod$ go mod init github.com/gh-zhangpeng/mymodule生成后的文件内容如下:
module github.com/gh-zhangpeng/mymodule go 1.16 -
将我们的刚刚编写的代码提交到
github中$ git add . && git commit -m "init mymodule" && git push
代码推送成功后,mymodule 就已经创建完成了。
使用 mymodule
进入一个使用 go mod 进行包管理的项目,使用 go get 命令将 mymodule 包添加到依赖中,然后我们就可以使用 mymodule 包中的代码了。
-
在项目中添加
mymodule的依赖$ go get github.com/gh-zhangpeng/mymodule go: downloading github.com/gh-zhangpeng/mymodule v0.0.0-20211019160614-87837bdd5f7a此时查看
go.mod文件,可以看到文件内多了一行mymodule的依赖。表示当前项目依赖mymodule的v0.0.0-20211019160614-87837bdd5f7a版本require github.com/gh-zhangpeng/mymodule v0.0.0-20211019160614-87837bdd5f7a // indirect -
使用
mymodule中的方法package main import ( "fmt" "github.com/gh-zhangpeng/mymodule" ) func main() { fmt.Println(mymodule.Hello("jack")) }
创建版本
当有了稳定的或者准备长期使用的 module 后,我们就可以为它创建一个版本。module 的版本是由 git 的 tag 控制的,因此我们在代码仓库中添加 tag。
$ git tag v1.0.0
$ git push --tags
现在我们将 go.mod 中依赖的 mymodule 的版本改为 v1.0.0。然后执行下面的代码,这样就将项目中依赖的 mymodule 版本设置为 v1.0.0。
$ go get github.com/gh-zhangpeng/mymodule
go module 的版本号规范可以参考 Module version numbering 这篇文章,在此就不多做赘述了。
最后
看到文章这个位置,您应该已经使用上了自己创建的 module 了。如果还没有,欢迎留言~












网友评论