不为我自己的包使用回购路径的影响
Implications of not using repo path for my own packages
假设我决定将所有个人开发的包组织起来
如下:
$GOPATH/
bin/
pkg/
src/
somepkg1
somepkg2
...
somepkgN
此外,假设它们之间有大量的代码重用,所以我
决定将整个 $GOPATH 工作区保持在相同的 Git
存储库(每个包都可以是一个子模块),而不是更多
子包不太连贯的传统场景(共存
完全是因为在同一个工作空间中使用 go get
):
$GOPATH/
bin/
pkg/
src/github.com/<me>/
somepkg1
somepkg2
...
somepkgN
我可以看到使用前一种方法(不使用 github.com/<me>/
在包路径中),go get
将无法获取包作为
它们 "declaring" 本身无法在线获取。然而,
通过使用 git 子模块可以很容易地解决这个问题,所以所有
包将首先被获取(注意它是一个紧密的
受控的生态系统,因此不会有名称冲突)。
除了go get
之外,是否还有其他不使用完整的限制?
包的路径?
(我主要担心某些代码引起的限制
refactoring/analysis 利用 repository path as base path
convention 的工具
允许 go get
在线查找包。)
对于 Go 编译器和除 go get
之外的所有 go 工具元素,包导入路径是包含导入路径的几乎不透明的字符串。您可以按照自己的意愿布置代码(编译器本身很乐意将不同文件夹中的文件编译到一个包中)。如果您不需要或不希望您的代码 go get
able 则无需使用回购路径。 golang 中的分析和重构工具。org/x/tools 在不透明的导入路径上工作(据我所知)并且不访问网络。
假设我决定将所有个人开发的包组织起来 如下:
$GOPATH/
bin/
pkg/
src/
somepkg1
somepkg2
...
somepkgN
此外,假设它们之间有大量的代码重用,所以我
决定将整个 $GOPATH 工作区保持在相同的 Git
存储库(每个包都可以是一个子模块),而不是更多
子包不太连贯的传统场景(共存
完全是因为在同一个工作空间中使用 go get
):
$GOPATH/
bin/
pkg/
src/github.com/<me>/
somepkg1
somepkg2
...
somepkgN
我可以看到使用前一种方法(不使用 github.com/<me>/
在包路径中),go get
将无法获取包作为
它们 "declaring" 本身无法在线获取。然而,
通过使用 git 子模块可以很容易地解决这个问题,所以所有
包将首先被获取(注意它是一个紧密的
受控的生态系统,因此不会有名称冲突)。
除了go get
之外,是否还有其他不使用完整的限制?
包的路径?
(我主要担心某些代码引起的限制
refactoring/analysis 利用 repository path as base path
convention 的工具
允许 go get
在线查找包。)
对于 Go 编译器和除 go get
之外的所有 go 工具元素,包导入路径是包含导入路径的几乎不透明的字符串。您可以按照自己的意愿布置代码(编译器本身很乐意将不同文件夹中的文件编译到一个包中)。如果您不需要或不希望您的代码 go get
able 则无需使用回购路径。 golang 中的分析和重构工具。org/x/tools 在不透明的导入路径上工作(据我所知)并且不访问网络。