使用golang dep从同一个github源获得不同的软件包版本

时间:2018-08-16 16:28:07

标签: go golang-migrate

我正在尝试将项目从govendor转换为dep。但是,我发现dep中有一个限制使之不可能。在govendor中,在vendor.json文件中,我可以从同一来源获得不同的程序包,并使用不同的修订哈希值。像这样:

{
    "checksumSHA1": "iYT7abLMy0Vfyy8nwoDZYirLrI4=",
    "path": "github.com/docker/docker/api/types",
    "revision": "deed26f7f0f9a9d279b8ac99389f204d9063d1a4",
    "revisionTime": "2018-03-29T10:06:29Z"
},
{
    "checksumSHA1": "jVJDbe0IcyjoKc2xbohwzQr+FF0=",
    "path": "github.com/docker/docker/api/types/blkiodev",
    "revision": "88c0317e23449d6ff730a1073f240586cbdfd4ba",
    "revisionTime": "2017-08-23T07:13:08Z"
},

但是,当我使用dep init解决此问题时,最终的.lock文件似乎选择了最新版本:

[[projects]]
digest = "1:3101683c3a63814ac8fe12a61fa01b728340f647c484d71573a31f041a68e7bc"
name = "github.com/docker/docker"
packages = [
    "api/types",
    "api/types/blkiodev",
]
pruneopts = "UT"
revision = "deed26f7f0f9a9d279b8ac99389f204d9063d1a4"

不幸的是,让github.com/docker/docker下的每个软件包都具有相同的修订版对我们根本不起作用。试图使它们全部成为一个修订版本,从而将整个修订版本引入了我们目前无法容忍的其他可传递程序包。 (该示例被删减,我们在github.com/docker/docker下有很多软件包,并且这些软件包被pidgeon分为三个或四个不同版本)。

所以问题是,Dep可以处理具有相同“名称”且具有不同修订版本的软件包吗?如果是这样,我们会永远与govendor保持联系吗?那会让我个人不高兴,因为govendor是...呃...具有挑战性的...(这可能是我们进入这个糟糕地方的方式)

提前感谢所有帮助!

1 个答案:

答案 0 :(得分:1)

  

所以问题是,可以处理具有相同“名称”但版本不同的软件包吗?

否。