例如,我们可以用来go get k8s.io/client-go安装 go 包,但是有没有办法找出源代码 URL 实际上是https://github.com/kubernetes/client-go?因为如果我直接访问 k8s.io/client-go 它会显示 404。
在这个例子中,go 客户端如何找出源代码在哪里?
某些导入路径还描述了如何使用修订控制系统获取包的源代码。
...对于托管在其他服务器上的代码,导入路径可以使用版本控制类型进行限定,或者 go 工具可以通过 https/http 动态获取导入路径,并从
<meta>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
Run Code Online (Sandbox Code Playgroud)
回复:
<html><head>
<meta name="go-import"
content="k8s.io/client-go
git https://github.com/kubernetes/client-go">
<meta name="go-source"
content="k8s.io/client-go
https://github.com/kubernetes/client-go
https://github.com/kubernetes/client-go/tree/master{/dir}
https://github.com/kubernetes/client-go/blob/master{/dir}/{file}#L{line}">
</head></html>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,响应 HTML 文档清楚地表明代码可在 处获得github.com/kubernetes/client-go。
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |