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

时间:2018-10-02 15:53:16

标签: go vgo

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

我在go.mod中设置了模块根目录,但仍然出现错误

  

build 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 (
    ...
)

我关注了https://research.swtch.com/vgo-tour,但我不明白为什么这不起作用。

当我在1.11之外尝试时,我的Go版本为foo,并且GOPATH文件夹位于我的GOPATH内,甚至无法正常工作。

我唯一能使它工作的是

module github.com/username/package1

require (
    ...
)

但是找不到其他2个软件包,并且出现与上述相同的错误。

我错过了什么吗,还是必须更改我提供的模块路径?

1 个答案:

答案 0 :(得分:0)

我假设您导入的本地软件包错误,请按照我的示例进行操作。

有我的go.mod(例如,在GOPATH之外,我已经导入了mux

module example

require github.com/gorilla/mux v1.6.2 // indirect

顺便说一句,您可以创建一个空的go.modgo会为您找到并更新您的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

您可以在这里Modules

找到更多说明