我正在尝试创建一个微服务应用程序,该应用程序取决于包含一般错误的net
模块(因此,我不必在所有模块中“复制”它们)。
问题是由于某种原因,它能够找到该模块,但随后告诉我该模块没有软件包(net
模块没有main.go
文件,因为它是只是用于其他项目的一组文件)
go: finding github.com/USERNAME/net latest
build github.com/USERNAME/micro-helix: cannot load github.com/USERNAME/net: module github.com/USERNAME/net@latest found (v0.0.0-20191209010811-97a65ac0928c), but does not contain package github.com/USERNAME/net
这是go.mod
文件,其中包含所有必要的要求(就我而言):
module github.com/USERNAME/micro-helix
go 1.13
require (
github.com/USERNAME/net v0.0.0-20191209010811-97a65ac0928c
github.com/USERNAME/service v0.0.0-20191209005400-57ee0eb02082
github.com/golang/protobuf v1.3.2
github.com/hashicorp/consul/api v1.3.0 // indirect
github.com/micro/go-micro v1.17.1
github.com/micro/go-plugins v1.5.1 // indirect
github.com/nats-io/nats-streaming-server v0.16.2 // indirect
github.com/nats-io/stan.go v0.5.2 // indirect
github.com/nicklaw5/helix v0.5.4
github.com/spf13/viper v1.5.0 // indirect
)
go.mod
模块的net
文件很简单:
module github.com/USERNAME/net
go 1.13
如果您需要任何进一步的说明,请随时提供。我知道这可能是菜鸟的错误(配置错误),但这实际上是我第一次尝试用Go编写东西。
更新#1
这是github.com/USERNAME/net
模块的结构
/-
errors/
- error.go // github.com/USERNAME/net/errors
- code.go // github.com/USERNAME/net/errors
proto/
- error.pb.go // github.com/USERNAME/net/proto
- response.pb.go // github.com/USERNAME/net/proto
errors.proto
go.mod // module github.com/USERNAME/net
response.proto
答案 0 :(得分:0)
可能您是从*.go
中的github.com/USERNAME/micro-helix
个文件中以github.com/USERNAME/net
导入模块的。
您必须通过完整路径(如
)导入所有子包(在该文件中使用)。import (
"github.com/USERNAME/net/errors"
"github.com/USERNAME/net/proto"
)
答案 1 :(得分:0)
我有一个类似的问题,问题是我已将代码检入master,但是另一个分支被设置为主git repo中的默认分支。将默认分支更改为master可以为我修复,但是YMMV。