Go供应商构建工具

Go供应商构建工具,go,vendor,Go,Vendor,我需要对构建期间使用的工具使用“vendoring”(github.com/mjibson/esc,以及golang.org/x/tools/cmd/stringer)来满足我们的源代码管理要求 我们的法规要求在构建过程中使用的所有源代码和工具都从公司管理的存储库中获取。在本例中,这些工具是在流程开始时从源代码构建的 使用git子模块从GitHub.com/golang.org获取源代码不起作用,因为我们的构建环境阻止了对外部存储库的任何访问 我想到了一些类似于vendoring的东西,即将某个

我需要对构建期间使用的工具使用“vendoring”(
github.com/mjibson/esc
,以及
golang.org/x/tools/cmd/stringer
)来满足我们的源代码管理要求

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

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

我想到了一些类似于vendoring的东西,即将某个版本的
esc
stringer
签入到我的存储库中,以及一些保持我使用的版本和源存储库之间关系的参考文件

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


我如何管理这些用于Go的外部工具的使用?

您可以在git配置中使用
而不是
。这允许您指定更标准的导入路径,但从中获取repo的实际URL可以是您的私有repo


请参阅此线程:

我实际上没有充分阅读本节中的内容:

required
列表用于添加代码中
import
指令未引用的其他依赖项。 添加我的两个软件包并运行
dep-sure
后,所有必需的源代码都可以在
供应商
子目录中找到


很抱歉…

你能将外部工具作为本地存储库,从本地repo导入它们,并继续使用
dep
?我试图添加一个项目,导入这两个工具,但stringer不是一个包,不能导入。我想我一开始误解了你的问题;现在我想我更明白你的意思了;不过,你应该能够用叉子叉工具;e、 例如,对于
stringer
,您可以从
https://github.com/golang/tools/tree/master/cmd/stringer
,从那里编译,并在构建过程中运行本地版本的
stringer
。。。如果您的SDLC规定足够严格,您可能需要从源代码处编译
go
本身;我想你可以分叉
https://github.com/golang/go
这样做;但是,你要使用的编译器需要来自某个地方。。。