【发布时间】:2019-02-15 15:09:24
【问题描述】:
我正在使用“微服务”架构构建应用程序。 这意味着我有不同的应用程序。 事实上,某些逻辑位于“共享”库中。
查看如下目录结构:
ROOT/
├── Service 1/
│ ├── src
│ ├──── app.go
├── Service 2/
│ ├── src
│ ├──── app.go
└── Lib/
├── Lib 1
│ ├── src
│ ├──── app.go
Service 1、Service 2 和 Lib 1 均使用 go mod 命令初始化。
对于 Service 1,这会生成一个包含以下内容的 go.mod 文件。
module github.com/kevin-de-coninck/datalytics/services/serviceOne
对于 Service 2,这会生成一个包含以下内容的 go.mod 文件。
module github.com/kevin-de-coninck/datalytics/services/serviceTwo
对于 Lib 1,这会生成一个包含以下内容的 go.mod 文件。
module github.com/kevin-de-coninck/datalytics/lib/libOne
Service 1 的 import 语句包含对 Lib 1
import (
"github.com/kevin-de-coninck/datalytics/lib/libOne"
)
但是,当我尝试构建应用程序时,会显示以下输出:
go: finding github.com/kevin-de-coninck/datalytics/lib/libOne latest
go: finding github.com/kevin-de-coninck/datalytics/lib latest
go: finding github.com/kevin-de-coninck/datalytics latest
build github.com/kevin-de-coninck/datalytics/services/serviceOne/src:
cannot find module for path github.com/kevin-de-coninck/datalytics/lib/libOne
我该如何解决这个问题,以便我可以使用我的 LibOne 包而不将其公开或在所有服务中复制它?
亲切的问候
【问题讨论】:
标签: go