如果遵循工作区结构的 GoLang 文档,两个可执行包可能会共享相同的包名。
比如github上有两个包:
$ $GOPATH/src/github.com/alpha/import
$ $GOPATH/src/github.com/beta/import
首先安装来自用户 alpha
的 import
包:
$ go install github.com/alpha/import
二进制可执行文件现在在 $GOPATH/bin
中可用,并命名为 import
。
然后安装用户 beta
的第二个包:
$ go install github.com/beta/import
此安装/构建会将来自用户 alpha
的现有 import
二进制文件替换为来自用户 beta
的 import
二进制文件>.
更好的命名约定可以避免这种冲突;但是,在使用第三方库时是否有解决此问题的标准做法?
最佳答案
这种冲突只发生在可执行文件上,从不包上。可执行文件不太常见,而且通常有不同的名称,所以在实践中我从未遇到过这个问题。
“修复”或“最佳实践”显而易见且非常简单:只需在安装后重命名二进制文件即可。
关于Go Lang 工作区重复包名称可执行冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34127810/