【问题标题】:How can I build a Go project without access to "go get"?如何在没有访问“go get”的情况下构建 Go 项目?
【发布时间】:2020-02-20 15:43:07
【问题描述】:

在只能通过浏览器下载依赖的情况下,如何为go项目提供依赖?

我在 GOPATH 中手动放置了依赖项,但 go build 仍在尝试访问 Internet 以下载依赖项

【问题讨论】:

  • IMO 最好的办法是在一家不那么严苛的公司找到一份新工作。
  • 你知道你的公司有没有HTTP代理吗?如果是,您也许可以关注stackoverflow.com/a/10385612/561422
  • 恕我直言,安全性有充分的理由。业务本身的性质决定了严格的安全性。是的,我们有代理。它是防火墙的一部分..
  • 我不知道为什么这被称为,题外话。这是一个完全有效的场景。

标签: go


【解决方案1】:

建议使用Go Modules 来管理项目及其依赖项。 Go 模块还具有vendor 功能。

启用供应商后,您的依赖项的本地副本将存储在项目内的vendor 文件夹中。那么当你将整个源代码传输到服务器时,你不需要再次下载依赖项,因为它已经包含在项目中了。

【讨论】:

  • 我建议现在使用 go 模块来管理供应商,而不是那些工具中的任何一个,其中大部分已被弃用。
  • 所以我去了 Go Modules 的文档。 IMO,它太笼统了,对我来说毫无意义。或者,也许我很愚蠢。
  • @ElIngeniero 基本上您需要做的是: 1. 在您的本地,在项目中运行 go mod init blablabla; 2. go 获取所有依赖项; 3.去mod供应商; 4. 归档/压缩整个源代码; 5. 发送到服务器; 6.解压; 7. 去构建然后运行。 8. 完成
  • "go get" 在我的工作站上不起作用:有一个可以执行 https 的应用程序白名单,Go 和 Git 都没有列入白名单。我需要用浏览器下载,然后把它放在某个地方。我尝试解压缩到 $GOPATH/src/github.com//,然后在解压缩的目录中“go build && go install”。但是当我去尝试构建时,去尝试再次下载它。
  • go get 是获取库的基本工具,我建议您要求将其列入白名单或跟踪依赖项,并且它们的版本会很痛苦
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 2016-10-21
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 2010-10-04
相关资源
最近更新 更多