如何限制/停止golangs工具转到互联网

时间:2018-03-01 05:04:09

标签: go

我们最近将Golang带入了我一般使用的公司,但我们在推出时遇到了障碍,因为Go可以使用go get命令从互联网上获取包。通常,当我们推出Java和Python时,我们可以通过将开发人员指向我们的内部工具来限制开发人员从中提取包的位置。

因此,使用Python,我们可以通过改变pip命令从内部工件中取出来改变它们的位置,使用Java我们可以改变它们的settings.xml和pom.xml以指向我们的内部包。

我知道在开发过程中,您可以将依赖项提取并引入本地,然后将它们编译为独立的二进制文件。我正在寻找的是阻止人们走出开放式互联网的一些机制。

Go中是否存在类似的内容?我可以阻止人们上网和go get打包吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

这取决于您对"推出"的定义,但通常有三个阶段:

  1. 开发 - 此时除了将开发机器置于限制性代理或类似技术措施之外,您无法阻止任意<div class="container"> <div class="icon"></div> <div class="text">This is some text showing how it is woring for a loooooooooong text.</div> </div>次调用。
  2. 部署 - 由于Go程序可以(应该)部署为单个二进制文件,因此在部署期间根本不会使用go get
  3. 构建部署工件 - 这可能是您的问题:
  4. 通常的方法是在构建 Go程序时不获取依赖关系。相反,依赖关系在开发期间获取,并使用vendoring成为源树的一部分,例如使用dep工具。

    此时,构建步骤不再需要获取任何依赖项。现在允许选择哪些依赖项成为过程其余部分的一部分,例如代码审查。