golang的三方包管理依赖

求助 , 老师们,你们都用什么管理golang的三方包。


粗略的看了下Godep和gopm,那个更靠谱呢。


还有一个网站 gopkg.in 。有一个应用依赖上面的一个包,而那个包无法下载,直接使用go get安装源码又出现在github.com的目录下。这种情况如何处理比较好呢?目前是手动copy github.com 目录下的包到 gopkg.in 的文件夹内。

已邀请:

moqiruyi - 80前IT男

赞同来自: rsj217



  1. 关于用什么管理golang的三方包:

    在Golang1.5之后,Go提供了GO15VENDOREXPERIMENT环境变量,用于将go build时的应用路径搜索调整成为当前项目目录/vendor目录方式。通过这种形式,我们可以实现类似于godep方式的项目依赖管理。不过起码在程序编译过程中,再也无需在其他端部署一个godep和gopm工具。

    在使用之前,需要安装一个辅助工具(如果Golang自改一个就好了):go get -u -v github.com/kardianos/govendor

    一次添加后,全部开发者都受益。

    现在很多开源项目都在是用这个工具。 如:gitea



  2. 关于gopkg.in直接使用go get安装源码

    以上的问题,gopkg.in 是golang第三方包以版本号的方式下载并编译安装的。 如果下载不了,可以直接使用golang自带的 go get ...的方式下载并编译安装,然后修改下 源码中 引用gopkg.in地址的源码地址 就好了。
    例如:gopkg.in/howeyc/fsnotify.v0 完全可以替换为 github.com/howeyc/fsnotify
    为了减少修改代码的工作量,也可以在copy源码后, 创建一个gopkg.in/howeyc/fsnotify.v0目录,把源码copy进来。 ln -s 一份 也ok哦!!

caibirdme - a green bird

赞同来自: Xargin

之前写了一篇文章讲这方面,仅供参考。看起来以后应该是会用[dep]( https://github.com/golang/dep "dep")

要回复问题请先登录注册