Go Lang 工作区重复包名称可执行冲突

标签 go namespaces package

如果遵循工作区结构的 GoLang 文档,两个可执行包可能会共享相同的包名。

比如github上有两个包:

$ $GOPATH/src/github.com/alpha/import
$ $GOPATH/src/github.com/beta/import

首先安装来自用户 alphaimport 包:

$ go install github.com/alpha/import

二进制可执行文件现在在 $GOPATH/bin 中可用,并命名为 import

然后安装用户 beta 的第二个包:

$ go install github.com/beta/import

此安装/构建会将来自用户 alpha 的现有 import 二进制文件替换为来自用户 betaimport 二进制文件>.

更好的命名约定可以避免这种冲突;但是,在使用第三方库时是否有解决此问题的标准做法?

最佳答案

这种冲突只发生在可执行文件上,从不包上。可执行文件不太常见,而且通常有不同的名称,所以在实践中我从未遇到过这个问题。

“修复”或“最佳实践”显而易见且非常简单:只需在安装后重命名二进制文件即可。

关于Go Lang 工作区重复包名称可执行冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34127810/

相关文章:

java - 由于包结构导致的 EclipseLink MOXy 异常

java - 从apk文件中提取包名

go - 如何动态填充结构?

ruby-on-rails - 如何为两个命名空间创建路由

swift - 如何使用 swiftc 创建可导入的 Swift 库

javascript - JavaScript 中的命名空间技术在 JSLint 中存在问题

c++ - 是否应该在头文件中使用 C++ namespace 别名?

dictionary - 如何在 Go 中创建一流的 map 迭代器?

go - Cadence Cron时间表,按时区排列

json - 将json数组编码到客户端