V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mss0
V2EX  ›  程序员

话说你们 Go 项目的依赖管理是怎么做的?

  •  
  •   mss0 · 2018-05-04 16:11:22 +08:00 · 7572 次点击
    这是一个创建于 2397 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开始用的 dep,后来发现同一个库使用 dep ensure -add 安装和使用 go get -u 安装文件的内容会不一样。

    使用 go get 直接把包安到了$GOPATH/src 目录下,那多人协作开发的时候怎么去保证依赖库的版本一致呢?

    22 条回复    2018-05-06 02:14:03 +08:00
    xrlin
        1
    xrlin  
       2018-05-04 16:19:13 +08:00
    现在 1.10 版本以上有 vgo
    NoMustard
        2
    NoMustard  
       2018-05-04 16:19:37 +08:00
    dep ensure 啊 不是有 Gopkg.toml 来保证依赖一致么
    Tinet
        3
    Tinet  
       2018-05-04 16:20:35 +08:00
    用的 govendor
    janxin
        4
    janxin  
       2018-05-04 16:20:51 +08:00
    dep ensure 如果是有 semver 的库会使用 semver 版本,go get 使用的是 master 分支。

    你可以通过调整 Gopkg.toml 指向 master 分支
    prolic
        5
    prolic  
       2018-05-04 16:25:03 +08:00 via Android
    我觉得 github 包不能精确到最后一次 commit 的话怎么做都没法严格保证一致吧,还是塞到 vendor 传 git 上比较靠谱
    twogoods
        6
    twogoods  
       2018-05-04 16:32:08 +08:00
    go 官方是时候搞个统一的依赖管理了啊
    hyuwang
        7
    hyuwang  
       2018-05-04 16:52:40 +08:00
    vgo 不错 不过我来推荐个小众的 gb + gb vendor
    跟反人类的 GOPATH 说再见
    helloworld12
        8
    helloworld12  
       2018-05-04 16:59:04 +08:00
    git,把整个 gopath 放在 git 里面了
    susecjh
        9
    susecjh  
       2018-05-04 17:53:04 +08:00 via Android
    godep
    kkk330
        10
    kkk330  
       2018-05-04 18:12:49 +08:00
    glide
    iappled
        11
    iappled  
       2018-05-04 18:35:22 +08:00
    @hyuwang gopath 太难用,gb 不错
    puperSB
        12
    puperSB  
       2018-05-04 18:38:00 +08:00
    govendor 或者 dep
    xio
        13
    xio  
       2018-05-04 19:50:09 +08:00
    vendor 入库
    mritd
        14
    mritd  
       2018-05-04 22:08:52 +08:00 via iPhone
    @Tinet 哇,我经常听你头像小姐姐的歌😉
    mritd
        15
    mritd  
       2018-05-04 22:09:16 +08:00 via iPhone
    glide
    nino
        16
    nino  
       2018-05-04 22:12:37 +08:00
    vgo 只支持 GitHub 啊
    zacharychangzc
        17
    zacharychangzc  
       2018-05-04 23:03:37 +08:00
    dep+vendor 上传 git
    Muninn
        18
    Muninn  
       2018-05-05 00:37:23 +08:00
    以前用 glide 现在就是 dep 啊

    只是你不会用 dep 而已。。。
    devtiange
        19
    devtiange  
       2018-05-05 08:03:30 +08:00
    可惜 gb 已经常年不更新了. GOPATH 确实是 go 里最最傻逼的东西.
    robertzhouxh
        20
    robertzhouxh  
       2018-05-05 10:19:06 +08:00
    govendor 妥妥的
    jlkm2010
        21
    jlkm2010  
       2018-05-05 13:06:03 +08:00
    试试 vgo ?
    SlipStupig
        22
    SlipStupig  
       2018-05-06 02:14:03 +08:00
    最烦恼的是 golang 好多包必须要翻墙才能 get,不知道大家如何解决的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2825 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:06 · PVG 23:06 · LAX 07:06 · JFK 10:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.