如何获取 go 包的实际存储库 url

例如,我们可以使用go get k8s.io/client-go安装 go 包,但有没有办法找出源代码 URL 实际上是https://github.com/kubernetes/client-go?因为如果我直接访问 k8s.io/client-go 会显示 404。

在这个例子中,go 客户端如何确定源代码在哪里?



千巷猫影
浏览 161回答 1
1回答

GCT1015

命令 go:远程导入路径:某些导入路径还描述了如何使用修订控制系统获取包的源代码。<meta>...对于托管在其他服务器上的代码,导入路径可以使用版本控制类型进行限定,或者 go 工具可以通过 https/http 动态获取导入路径,并从HTML 中的标记中发现代码所在的位置。...如果导入路径不是已知的代码托管站点并且还缺少版本控制限定符,则 go 工具会尝试通过 https/http 获取导入并在文档的 HTML 中查找标记<head>。元标记具有以下形式:<meta name="go-import" content="import-prefix vcs repo-root">import-prefix 是存储库根目录对应的导入路径。它必须是使用“go get”获取的包的前缀或完全匹配。如果不完全匹配,则在前缀处发出另一个 http 请求以验证<meta>标签是否匹配。例如,在您的情况下,该go工具将查询https://k8s.io/client-go?go-get=1. 自己检查:curl https://k8s.io/client-go?go-get=1回复:<html><head>&nbsp; &nbsp; <meta name="go-import"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; content="k8s.io/client-go&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;git https://github.com/kubernetes/client-go">&nbsp; &nbsp; <meta name="go-source"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; content="k8s.io/client-go&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;https://github.com/kubernetes/client-go&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;https://github.com/kubernetes/client-go/tree/master{/dir}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;https://github.com/kubernetes/client-go/blob/master{/dir}/{file}#L{line}"></head></html>如您所见,响应 HTML 文档清楚地表明该代码可在github.com/kubernetes/client-go.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go