发布模块

当您希望向其他开发人员提供模块时,请发布该模块,以便 Go 工具可以看到它。发布模块后,导入其软件包的开发人员将能够通过运行诸如 go get 之类的命令来解决对该模块的依赖关系。

注意:在发布模块的标记版本后,请勿对其进行更改。对于使用该模块的开发人员,Go 工具会根据首次下载的副本对下载的模块进行身份验证。如果两者不同,Go 工具将返回安全错误。不要更改先前发布版本的代码,而是发布新版本。

另请参阅

发布步骤

使用以下步骤发布模块。

  1. 打开命令提示符,并转到本地存储库中的模块根目录。

  2. 运行 go mod tidy,它将删除模块可能累积的任何不再必要的依赖项。

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

    这将运行您编写的单元测试以使用 Go 测试框架。

    $ go test ./...
    ok      example.com/mymodule       0.015s
    
  4. 使用 git tag 命令用新版本号标记项目。

    对于版本号,请使用一个向用户表明此版本中更改性质的数字。有关详细信息,请参阅模块版本编号

    $ git commit -m "mymodule: changes for v0.1.0"
    $ git tag v0.1.0
    
  5. 将新标记推送到原始存储库。

    $ git push origin v0.1.0
    
  6. 通过运行go list 命令使模块可用,以提示 Go 使用您要发布的模块信息更新其模块索引。

    在命令之前加上一个语句,将 GOPROXY 环境变量设置为 Go 代理。这将确保您的请求到达代理。

    $ GOPROXY=proxy.golang.org go list -m example.com/[email protected]
    

对您的模块感兴趣的开发人员从中导入一个包,并运行go get 命令,就像他们对任何其他模块所做的那样。他们可以运行go get 命令以获取最新版本,也可以指定特定版本,如下例所示

$ go get example.com/[email protected]