Go 供应商构建工具

Go vendor build tools

我需要使用 "vendoring" 构建期间使用的工具(github.com/mjibson/escgolang.org/x/tools/cmd/stringer)来满足我们的源代码管理要求。

我们的法规要求在构建过程中使用的所有源代码和所有工具都从公司管理的存储库中获取。在这种情况下,工具是在流程开始时从源代码构建的。

使用 git submodule 从 GitHub.com/golang.org 获取源代码不起作用,因为我们的构建环境阻止对外部存储库的任何访问。

我想到了像 vendoring 这样的东西,即将 escstringer 的某个版本签入我的存储库,以及一些保持我正在使用的版本之间关系的参考文件和原始存储库。

对于构建期间使用的开源(通过 import 语句引用),dep 工具做得非常好。但是当我尝试销售任何工具时都失败了。

如何管理 Go 的此类外部工具的使用?

您可以在 git 配置中使用 insteadOf。这样做是允许您指定一个更标准的导入路径,但从中获取回购的实际 URL 可以是您的私人回购。

参考这个帖子:Go dep with private repo

实际上我没有读 Package graph rules section in the Gopkg.toml documentation 足够透彻:

required 列表是添加代码中 import 指令未引用的其他依赖项的地方。 添加我的两个包和 运行 dep ensure 后,所有必需的源代码都在 vendor 子目录中可用。

抱歉...