2 回答
TA贡献1828条经验 获得超13个赞
使用 go modules 是推荐的方法。您必须使用go mod vendor
命令将模块复制到开发环境中的供应商目录(显然需要首先下载包)。go mod vendor
不会将软件包下载到供应商目录中,它会从您在开发环境中可能位于$GOPATH/pkg/mod
或类似的东西中的先前下载的模块中复制它们,并将其保存在您的供应商文件夹中,以便在生产中您不需要下载它们。然后,您将使用go build -mod vendor
.
所以总结一下:
在您的代码中导入您的包
获取依赖进入
$GOPATH/pkg/mod
或类似路径:(go get github.com/name/project@v1.0
此步骤实际上是可选的)将包从复制
$GOPATH/pkg/mod
到vendor
:go mod vendor
编译代码:
go build -mod vendor
TA贡献1794条经验 获得超8个赞
只是为了扩展您对问题的评论,是的,使用 go 模块,但这仍然不能解决您的请求,您将需要使用模块和 go modules 提供的供应商选项。然后您的所有依赖项将存储在您的存储库内的供应商文件夹中,您签入该文件夹,然后用户只需签出您的存储库并拥有所有依赖项。
还要查看 go env 变量GOFLAGS=-mod=vendor
,您需要为 go 工具设置它来查看您的供应商与检查网络(我在我们的构建管道上设置了它)
有关该 env 变量的详细说明,请参阅https://github.com/golang/go/issues/27227
- 2 回答
- 0 关注
- 95 浏览
添加回答
举报