go模块指令
- go mod init创建一个新模块,初始化go.mod描述它的文件。
- go build、go test和其他包构建命令go.mod根据需要添加新的依赖项。
- go list -m all 打印当前模块的依赖项。
- go get 更改依赖项的所需版本(或添加新的依赖项)。
- go mod tidy 删除未使用的依赖项。
- go list -m -versions 模块名(查看某模块的所有版本)。
注意:golang允许使用同一个模块的不同大版本,比如v1和v2等,这样方便进行代码逐步迁移(这功能不错)。导入的时候需要自己重命名模块,比如这样:
package hello
import (
"rsc.io/quote"
quoteV3 "rsc.io/quote/v3"
)
func Hello() string {
return quote.Hello()
}
func Proverb() string {
return quoteV3.Concurrency()
}
创建一个自己的包的注意事项
1.包名
包名用小驼峰,里面的package名字和包名保持一致。
2.go.mod
go mod 里面module的名称一定要记得改为github.com/Chise1/包名。因为如果要上传到github上,这里不加这个名字就会报错:
go get: github.com/Chise1/hello@none updating to
github.com/Chise1/hello@v1.0.0: parsing go.mod:
module declares its path as: Chise1/Hello
but was required as: github.com/Chise1/hello
发布一个包
- git tag v1.0.0
- git push origin v1.0.0
建议每个版本一个分支,通过cherry pick的方式合并。
说实话我不喜欢这种版本管理,感觉好随意。。。