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,一些官方的东西将是一个很好的改变,目前有太多的解决方案。。。