我需要对构建期间使用的工具(github.com/mjibson/esc
和golang.org/x/tools/cmd/stringer
)使用“供应商”,以满足我们的源管理要求。
我们的法规要求从公司管理的存储库中获取构建过程中使用的所有源代码和所有工具。在这种情况下,工具将在过程开始时从源代码构建。
使用git submodule
从GitHub.com/golang.org获取源代码不起作用,因为我们的构建环境阻止了对外部存储库的任何访问。
我想到了类似供应商之类的东西,即已将某个特定版本的esc
和stringer
签入到我的存储库中,以及一些参考文件,这些文件保持了我正在使用的版本与原始存储库。
对于在构建过程中使用的开放源代码(通过import
语句引用),dep
工具可以完成出色的工作。但是,当我尝试提供任何工具时,它都会失败。
如何管理Go的此类外部工具的使用?
答案 0 :(得分:1)
您可以在git配置中使用insteadOf
。这样做是为了允许您指定一个更标准的导入路径,但从中获取存储库的实际URL可以是您的私有存储库。
请参考此线程:Go dep with private repo
答案 1 :(得分:0)
实际上我没有足够深入地阅读Package graph rules中的Gopkg.toml documentation部分:
required
列表是添加代码中import
指令未引用的其他依赖项的地方。
添加完我的两个软件包并运行dep ensure
之后,所有必需的源代码都可以在vendor
子目录中找到。
我的道歉...