首页 >后端开发 >Golang >如何使包可用于个人 Git 存储库上的'go get”?

如何使包可用于个人 Git 存储库上的'go get”?

Susan Sarandon
Susan Sarandon原创
2024-11-03 12:28:02813浏览

How to Make a Package Available for

在个人 Git 存储库上使用“go get”:综合指南

挑战

尝试在个人 Git 存储库上使包可用于“go get”通常会导致错误消息“无法识别的导入路径”。本文针对此问题提供了全面的解决方案。

了解 META 标签

Go 需要在 Git 存储库的根 HTML 页面中有一个 META 标签,用于指定包的导入路径和存储库 URL。语法如下:

<meta name="go-import" content="import_path git repo_url">

设置服务器

要使“go get”功能正常工作,必须配置托管 Git 存储库的服务器当使用“?go-get=1”参数发出请求时,返回 META 标记。

推荐的 nginx 配置

以下 nginx 重写规则可以是用于实现此目的:

location ~ "(/[^/]+/[^/]+)(/.*)?" {
    if ($arg_go-get = "1") {
            echo '<html><head><meta name="go-import" content="my.domain.com git git+ssh://[email protected]"/></head></html>';
    }
    try_files $uri $uri/index.html $uri.html @gitlab;
}

此规则假定通过 SSH 访问 Git 存储库。如果使用 HTTPS,请相应修改 URL。

META 标签示例

请求“http://mygit.server/group/project?go-get=1 " 应返回以下 META 标记:

<meta content='mygit.server/group/project git git+ssh://[email protected]/group/project.git' name='go-import'>

测试包

配置服务器后,您可以验证该包是否可用于“go get”通过运行:

<code class="Bash">go get example.com/user/package</code>

此命令应成功下载并安装软件包。

以上是如何使包可用于个人 Git 存储库上的'go get”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn