使用VGO和Go.mod找不到Go模块

使用VGO和Go.mod找不到Go模块,go,vgo,Go,Vgo,我正在使用版本化的Go命令来管理我的供应商,一切正常,但当我运行Go build时,它找不到我的本地软件包 我已经在我的go.mod中设置了模块根目录,但仍然收到一个错误 生成foo:找不到路径的模块 这个项目就像 foo/ |__src/github.com/username/package1/package1.go |__src/github.com/username/package2/package2.go |__src/github.com/username/package3/packa

我正在使用版本化的Go命令来管理我的供应商,一切正常,但当我运行
Go build
时,它找不到我的本地软件包

我已经在我的
go.mod
中设置了模块根目录,但仍然收到一个错误

生成foo:找不到路径的模块

这个项目就像

foo/
|__src/github.com/username/package1/package1.go
|__src/github.com/username/package2/package2.go
|__src/github.com/username/package3/package3.go
|__main.go
|__go.mod
|__go.sum
所以我的
go.mod
看起来像

module foo

require (
    ...
)
我遵循了,但我不明白为什么这不起作用

我的Go版本是
1.11
,当我在
GOPATH
之外尝试时,
foo
文件夹在我的
GOPATH
内,这甚至不起作用

我唯一一次让它工作就是做

module github.com/username/package1

require (
    ...
)
但是没有找到另外两个包,我得到了与上面相同的错误


我是否遗漏了某些内容,或者我提供的模块路径必须更改?

我假设您导入的本地包是错误的,请按照我的示例操作

这是我的
go.mod
(例如,在
GOPATH
之外,我导入了
mux
):

顺便说一句,您可以创建一个空的
go.mod
go
将为您找到并更新您的
go.mod

main.go

package main

import (
    _ "example/src/foo" // local package
    "fmt"
    _ "github.com/gorilla/mux" // example import
)

func main() {
    fmt.Println("foo")
}
foo
本地包:

package foo

import "fmt"

func bar() {
    fmt.Println("foo")
}
模块树:

├── go.mod
├── go.sum
├── main.go
└── src
    └── foo
        └── foo.go
你可以在这里找到更多的解释

├── go.mod
├── go.sum
├── main.go
└── src
    └── foo
        └── foo.go