【问题标题】:Go Dep - sync Gopkg.toml with vendorGo Dep - 将 Gopkg.toml 与供应商同步
【发布时间】:2018-08-09 03:11:14
【问题描述】:

有没有办法创建或同步Gokpkg.toml 与我在.go 文件中导入的包? 如果我的Gopkg.toml 为空并且我运行dep ensure,它会将我在代码中导入的所有包下载到vendor 文件夹,但不会更新Gopkg.toml 文件。 当我不得不以最简单的方式将不使用包管理器的遗留项目迁移到使用dep 时,它出现了,只需创建一个包含我已经导入的所有包的最新版本的Gopkg.toml为每个包手动运行dep ensure -add ...。 有这样的命令吗?

【问题讨论】:

    标签: go dep


    【解决方案1】:

    删除您的Gopkg.toml 文件,然后运行dep init,然后运行dep ensure。它将创建您的Gopkg.toml 文件并自动设置所有依赖项。

    【讨论】:

    • 该死!这很尴尬..谢谢。 dep init 实际上已经足够了。如果有一个独立的命令将Gopkg.toml 与源代码导入同步,那还是很好的,因为如果我不迁移到dep 怎么办?如果我将一些依赖项临时导入到已经使用 dep 的项目中,因为这是最方便的方式,然后想要同步我的 Gopkg.toml 以包含它们,该怎么办?是的,我可以删除Gopkg.toml 文件并再次运行dep init,但这是一种解决方法,不是吗?无论如何你都非常有帮助:)
    • 据我所知,简单地运行 dep ensure 实际上应该确保您的 Gopkg.toml 文件是最新的并添加您所有的新依赖项:)
    • 查看documentation on dep ensure 了解更多关于它的作用的信息,但这是一种很好的思考方式:当你运行dep ensure 时,你基本上问dep 到“确保我的项目是同步的:Gopkg.lock 满足我项目中的所有导入,以及 Gopkg.toml 中的所有规则,并且 vendor/ 包含 Gopkg.lock 所说的内容。"
    • 我也是这样,但它没有工作,它更新Gopkg.lock,它将导入下载到vendor文件夹但它没有将它们添加到Gopkg.toml。此外,在您刚刚发送的文档中,向下滚动到以 Of course, given this model, 开头的行,他们解释说您可以在代码中添加一个导入,然后运行 ​​dep ensure 来供应导入,但他们不会附加它到Gopkg.toml。奇怪,好像是故意的,不明白为什么。
    • 啊这很有趣,我不知道!我一直认为它是自动添加的!感谢您指出了这一点! :)
    猜你喜欢
    • 1970-01-01
    • 2016-06-30
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多