2

我正在尝试在 Go 中部署 Google Cloud 功能,但在部署时出错,因为我同时使用子包“内部模块”(仅在我的主机上定义,未部署在任何地方)。我有以下结构:

.
├── function
│   ├── package1
│   │   └── file1.go
│   ├── function.go
│   ├── go.mod
│   └── go.sum
└── common
    ├── common.go
    ├── go.mod
    └── go.sum

我的function.go(我的云功能的入口点)的内容:

package function

import (
    "github.com/.../function/package1"
    "github.com/.../common"
)

// use functions from package1 and common

主题已在此处单独介绍:

第一篇文章表示使用 vendoring 和 excludego.modgo.sum从源代码中使用common模块,而第二篇文章表示包含go.modgo.sum不使用 vendoring 以便能够使用子包。

但我想知道:是否可以同时使用两者?或者供应商依赖项需要将所有.go源文件放在同一个目录中(没有子包)?同样,使用子包需要不使用供应商?如何构建我的代码以避免这些限制,或者我能做什么(在common某处部署模块,...)?

此外,有关 Go Cloud Functions 的“指定依赖项”的文档指出:

Go 中的 Cloud Functions 必须通过带有 go.mod 文件的 Go 模块或供应商目录提供所有依赖项。您的函数不能同时使用Go 模块和供应商目录指定依赖项。

4

0 回答 0