如何存储依赖关系?

时间:2016-07-07 17:39:02

标签: go artifactory

我使用GoDep来解决项目依赖项。 我的问题是依赖的存储库可能会被删除,我的项目也不会构建。

我试图在Artifactory或其他解决方案中找到存储依赖关系的任何解决方案。

请建议。

问候。

1 个答案:

答案 0 :(得分:1)

好的,所以GoDeps可能是这样做的标准方式,但我通常觉得它有点复杂。在我看来,使用Makefile设置一个自定义GoPath并只包含你的代码的依赖(删除他们的.git文件夹)。这样版本冻结,没有人需要做godep restore或类似的东西。

您可以制作make deploy之类的食谱,用于构建代码,运行GoFmt,清理pkg文件,将其安装到自定义GoPath bin/,然后您就可以运行二进制文件。

您可以使用另一个像make install那样安装任何缺少的依赖项。

我已经设法在我的Makefile上使用它创建一个监视器,以便继续使用inotify-tools在基于linux的系统上查找更改并调用rebuild。

内部所有命令都将使用标准go命令,但您将摆脱GoDep并维护JSON。要升级依赖项,可能会有点问题,因为您必须手动将整个目录复制到自定义路径并删除.git /文件夹。

我们公司使用这种方法,似乎对我们来说非常好。

此外,这种方法基本上可以让你远离$GOPATH/src/github.com/repoName/种路径。

如果我似乎不清楚,请告诉我,我将在github上添加一个要点。