代码之家  ›  专栏  ›  技术社区  ›  Jérôme

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

  •  1
  • Jérôme  · 技术社区  · 6 年前

    go build 它找不到我的本地包

    go.mod 但我还是犯了个错误

    这个项目就像

    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
    

    所以我的 转到.mod 看起来像

    module foo
    
    require (
        ...
    )
    

    我跟着 https://research.swtch.com/vgo-tour 但我不明白为什么这样不行。

    我的围棋版本是 1.11 以及 foo GOPATH 当我在外面尝试的时候 戈帕斯

    我唯一能成功的就是

    module github.com/username/package1
    
    require (
        ...
    )
    

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

    我是否遗漏了什么,或者我提供的模块路径是否必须更改?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Roman Kiselenko    6 年前

    我想你们进口的本地包裹是错的,就以我为例吧。

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

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

    转到.mod 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