让我们举个例子。下面的命令将执行:
go get robpike.io/ivy
这将使我获得 $GOPATH/src 下存储库的内容。伟大的!
现在,它是如何工作的?
首先,robpike.io/ivy 回复 HTTP 重定向:
HTTP/1.1 302 Found
<a href="http://godoc.org/robpike.io/ivy">Found</a>
通过阅读go help importpath
,我了解到:
如果导入路径不是已知的代码托管站点并且也缺少版本控制限定符,go 工具会尝试通过 https/http 获取导入并在文档的 HTML 中查找标记
但是,使用以下命令在重定向页面的内容中查找元标记:
curl -D --raw https://godoc.org/robpike.io/ivy | grep go-import
什么都不返回。
进一步阅读:
repo-root 是包含方案但不包含 .vcs 限定符的版本控制系统的根。
例如,
导入“example.org/pkg/foo”
将导致以下请求:
https://example.org/pkg/foo?go-get=1(首选)
http://example.org/pkg/foo?go-get=1 (后备,仅适用于 -insecure)
再次:
curl -D --raw https://robpike.io/ivy?go-get=1
什么都不返回。
所以问题是:我怎样才能像 Rob Pike 先生一样做同样的事情,并通过go get
命令使用我自己的网站?
九州编程
梵蒂冈之花
相关分类