发布模块
当您希望让其他开发人员可以使用某个模块时,可以发布该模块,以便它对于 Go 工具是可见的。一旦您发布了模块,导入其包的开发人员将能够通过运行诸如 go get 之类的命令来解决模块上的依赖关系。
注意: 在发布模块之后,不要更改已标记的版本。对于使用该模块的开发人员,Go 工具对下载的模块进行身份验证,并与下载的第一个副本进行对比。如果两者不同,Go 工具将返回一个安全错误。不要更改以前发布的版本的代码,而是发布一个新版本。
参见
有关模块开发的概述,请参见Developing and publishing modules 开发和发布模块
For a high-level module development workflow -- which includes publishing -- see 有关高级模块开发工作流(包括发布) ,请参见Module release and versioning workflow 模块发布和版本化工作流程.
Publishing steps
发布步骤
使用以下步骤发布模块。
打开命令提示符,并在本地存储库中更改到模块的根目录。
运行 go mod tidy,它删除模块可能累积的不再需要的任何依赖项。
$ go mod tidy
Run go test ./... a final time to make sure everything is working.
运行 go 测试。/... 最后一次确保一切正常。
This runs the unit tests you've written to use the Go testing framework.
这将运行您为使用 Go 测试框架而编写的单元测试。
$ go test ./...
ok example.com/mymodule 0.015s
使用 git Tag 命令为项目标记一个新的版本号。
对于版本号,请使用一个数字,向用户发出此版本中更改的性质的信号。有关更多信息,请参见模块版本编号。
$ git commit -m "mymodule: changes for v0.1.0"
$ git tag v0.1.0
Push the new tag to the origin repository.
将新标记推送到原始存储库。
$ git push origin v0.1.0
通过运行 Go list 命令来提示 Go,使模块可用,以便使用关于正在发布的模块的1nformation 更新其模块索引。
在命令之前加上一条语句,将 GOPROXY 环境变量设置为 Go 代理。这将确保您的请求到达代理。
$ GOPROXY=proxy.golang.org go list -m example.com/mymodule@v0.1.0
对您的模块感兴趣的开发人员可以从它导入一个包,然后像运行其他模块一样运行 go get 命令。他们可以运行最新版本的 go get 命令,也可以指定一个特定的版本,如下例所示:
$ go get example.com/mymodule@v0.1.0
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。