如果你有一个go-only repo(让's say it' s https://github.com/foo/bar),你可以将你的代码放在根级别,并使用以下命令导入其他代码:
go get -u github.com/foo/bar
其中的目录和子目录将被视为包 .
但是假设您正在github上创建一个多语言仓库(例如,具有java代码,代码,javascript代码等) . 并且您希望将其代码提供给其他人使用 . 从代码组织的角度来看,通常将go代码放在根级别是一个禁忌 . 可能更常见的可能是
(root)
|-- src
|-- main
|-- go
|-- java
|-- javascript
|-- proto
您的go代码的根级别现在为https://github.com/foo/bar/src/main/go . 但您不能再使用之前的 go get
命令,因为它会查看顶层 . 你真的不想使用 go get -u github.com/foo/bar/src/main/go
,因为所有这些现在都会成为真正令人讨厌的软件包名称的一部分 .
问题是,有没有办法指定一个确切的URL,以便您可以分离包名称和URL?换句话说,我正在寻找类似的东西
go get -u github.com/foo/bar https://github.com/foo/bar/src/main/go
(当然包名称应该与源中的实际名称匹配,否则将无法编译) .
我查看了go文档,但我不清楚这是否可行 .