如何从 Go Modules 中的不同目录导入本地包?

How to import a local package from different directory in Go Modules?

我有一个包含 6 个微服务的项目。每个微服务都在自己的目录中,它们是 Go 模块,例如:

- user-ms
- project-ms
- messages-ms

所有微服务中都有一些重复的代码,比如mongo方法,一些配置,一些结构等。我想将所有重复的代码合并到一个包中。然后,我愿意在我们的微服务上导入包。由于公司限制,我无法在 Github 上创建存储库。

如果我在 $GOPATH/src/ 中创建文件夹,我不知道如何将其包含在 docker-compose.yml 中。

是否可以创建一个文件夹(“common-utils”)然后导入其他模块?

- user-ms
-- go.mod
- project-ms
-- go.mod
- messages-ms
-- go.mod
- common-utils
-- go.mod

您可以用本地包替换您的包名。

go mod edit -replace github.com/remote_package=../local_package

go mod tidy