发布模块

当你想让一个模块可供其他开发者使用时,你需要发布它,以便Go工具能够发现它。一旦你发布了该模块,导入其包的开发者就能够通过运行诸如 go get 之类的命令来解析对该模块的依赖。

注意: 发布后,请勿更改模块的已标记版本。对于使用该模块的开发者,Go工具会根据首次下载的副本对下载的模块进行认证。如果两者存在差异,Go工具将返回安全错误。请勿为先前发布的版本修改代码,而应发布一个新版本。

另请参阅

发布步骤

按照以下步骤发布一个模块。

  1. 打开命令提示符,切换到本地仓库中你模块的根目录。

  2. 运行 go mod tidy,该命令会移除模块中可能积累的、不再必要的依赖项。

    $ go mod tidy
    ```
1.  最后运行一次 `go test ./...` 以确保一切正常工作。

    这会运行您使用 Go 测试框架编写的单元测试。
$ go test ./...
ok      example.com/mymodule       0.015s
```
  1. 使用 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
```
  1. 运行 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