在个人 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中文网其他相关文章!