Go 使用带gb的本地包
我正在启动一个新项目,并考虑将Go 使用带gb的本地包,go,Go,我正在启动一个新项目,并考虑将gb作为我的构建工具,但它似乎没有与vscode很好地集成 我引用了第三方依赖项,使用gb供应商获取没有问题,但对于创建本地包,这证明有点棘手!我错过了什么明显的东西吗 这是我的本地src目录: src /cmd /model calc.go /server server.go 以下代码成功编译并创建了一个bin\server.exe文件,但导入路径未被拾取,也未被gocode
gb
作为我的构建工具,但它似乎没有与vscode
很好地集成
我引用了第三方依赖项,使用gb供应商获取没有问题
,但对于创建本地包,这证明有点棘手!我错过了什么明显的东西吗
这是我的本地src目录:
src
/cmd
/model
calc.go
/server
server.go
以下代码成功编译并创建了一个bin\server.exe
文件,但导入路径未被拾取,也未被gocode
识别
以下是服务器代码:
package main
import (
"cmd/model" // not a happy reference...
"fmt"
)
func main() {
fmt.Println(model.Add(1, 2))
}
以下是模型代码:
package model
func Add(a int, b int) int {
return a + b
}
我在Github()上发现了类似的问题,尽管nsf的解决方案对自动完成(post-import)进行了排序,import语句本身仍然声称在GOROOT和gopath中进行搜索
有什么想法吗?多亏了卢克霍班的回答,我才得以让我的环境运转起来 我只是在.vscode目录(现在必须签入)下创建了一个settings.json文件,我已经在其中配置了:
{
"go.gopath": "${workspaceRoot}"
}
这让我觉得不干净,而且它仍然不能提供一种同时引用第三方依赖项和本地包的方法…不要尝试使用Go,使用Go 首先,为所有包提供完全限定的导入路径。Go是围绕全局导入路径设计的,不要试图强制使用平面层次结构甚至相对路径 您可以直接或使用Go的机制指向导入路径存储库端点。顺便说一句,如果您碰巧运行了一个自托管的GitLab实例,它支持开箱即用的远程导入路径元标记
我更喜欢,但也许以下也是gb的可能。当然,在即将到来的版本中,类似的东西也将成为可能:您可以使用glide指向ssh+git端点和其他端点。坦白地说,我不知道gb是否支持一个等效的机制,但如果它不支持,这是一个重新考虑的好理由 GB将每个项目视为自己的GOPATH,所以我通常不会这么做!我最终实现了Govendo,它工作得很好。我也在等待dep,一些官方的东西将是一个很好的改变,目前有太多的解决方案。。。