1

我正在使用版本化的 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 (
    ...
)

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

我的 Go 版本是1.11,当我在外面尝试时,foo文件夹在我的里面,这甚至不起作用。GOPATHGOPATH

我唯一让它工作的时候就是在做

module github.com/username/package1

require (
    ...
)

但没有找到其他 2 个包,我得到与上面相同的错误。

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

4

1 回答 1

2

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

有我的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

于 2018-10-02T18:10:45.867 回答