发布模块
当你想让一个模块可供其他开发者使用时,你需要发布它,以便Go工具能够发现它。一旦你发布了该模块,导入其包的开发者就能够通过运行诸如 go get 之类的命令来解析对该模块的依赖。
注意: 发布后,请勿更改模块的已标记版本。对于使用该模块的开发者,Go工具会根据首次下载的副本对下载的模块进行认证。如果两者存在差异,Go工具将返回安全错误。请勿为先前发布的版本修改代码,而应发布一个新版本。
另请参阅
- 关于模块开发的概述,请参见开发与发布模块。
- 关于高级的模块开发工作流程(其中包括发布),请参见模块发布与版本管理工作流。
发布步骤
按照以下步骤发布一个模块。
-
打开命令提示符,切换到本地仓库中你模块的根目录。
-
运行
go mod tidy,该命令会移除模块中可能积累的、不再必要的依赖项。
$ go mod tidy
```
1. 最后运行一次 `go test ./...` 以确保一切正常工作。
这会运行您使用 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
```
1. 将新标签推送到源仓库。
```text
$ git push origin v0.1.0
```
$ git push origin v0.1.0
```
-
运行
go list命令 使模块可用,这将提示 Go 更新其模块索引,并包含您正在发布的模块信息。在命令之前,请先设置
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