【问题标题】:How to use 'Local' modules in 'GoLang' [duplicate]如何在“GoLang”中使用“本地”模块 [重复]
【发布时间】:2019-02-15 15:09:24
【问题描述】:

我正在使用“微服务”架构构建应用程序。 这意味着我有不同的应用程序。 事实上,某些逻辑位于“共享”库中。

查看如下目录结构:

ROOT/
├── Service 1/
│   ├── src
│   ├──── app.go
├── Service 2/
│   ├── src
│   ├──── app.go
└── Lib/
    ├── Lib 1
    │   ├── src
    │   ├──── app.go

Service 1Service 2Lib 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 1import 语句包含对 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


    【解决方案1】:

    经过一番折腾,我找到了答案。 似乎“go.mod”和“go.sum”文件应该放在“src”目录中。 完成后,就可以构建和执行应用程序了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 2021-10-07
      相关资源
      最近更新 更多