【问题标题】:"glide get" and "go get" install different versions“glide get”和“go get”安装不同的版本
【发布时间】:2017-06-18 06:54:04
【问题描述】:

我使用ginkgo 作为测试工具,glide 作为包管理器。

ginkgo 要求我们安装一个二进制文件来自动生成测试文件。 glide,据我所知,不支持安装二进制文件。所以,我最终使用go get 来安装二进制文件及其源文件。

一个问题是glide 安装了它通过扫描 go 文件解决的所有包。这意味着ginkgo的源文件也被安装了。 编译时优先考虑vendor目录下的包。所以这会导致使用来自$GOPATH/bin 的二进制文件,而使用来自vendor 目录的源文件的情况。 似乎go get 从主分支获取文件,而glide 获取最新发布的版本。所以二进制生成的测试文件与glide安装的源文件不兼容。

有什么方法可以防止 glide 安装某些特定的包吗? 或者还有其他更好的方法吗?

【问题讨论】:

    标签: go


    【解决方案1】:

    使用 glide,您可以指定要安装的软件包的某个版本。这是在 glide.yaml 中完成的

    提示:版本取决于 VCS,可以是任何可以 被检出或可以被解析的语义版本约束 github.com/Masterminds/semver 包。例如,使用 Git 这 可以是分支、标签或哈希。这会有所不同,取决于什么 在 VCS 中支持。

    package: github.com/YOUR/PACKAGE
    import:
      - package: github.com/onsi/ginkgo/ginkgo
        version: master
        repo: git@github.com:onsi/ginkgo.git
    

    这将下载最新的主提交。

    Here 是有关使用 glide 进行版本控制的更多信息。

    【讨论】:

    • 没问题。我遇到了gopm,它可以在拉取某个版本后构建二进制文件。但我没有自己尝试。
    猜你喜欢
    • 1970-01-01
    • 2020-11-22
    • 2016-03-18
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 2020-05-28
    相关资源
    最近更新 更多