【问题标题】:How do I use github packages in go?我如何在 go 中使用 github 包?
【发布时间】:2017-08-09 17:26:31
【问题描述】:

抱歉,这是一个新手 golang 问题。我正在修改一个名为 journalbeat 的 github 项目。

当我克隆该存储库时,我可以设置 GOPATH 并运行 go get 以获取所有导入并将它们放入 src。

我想添加一个新的导入。

import "github.com/danwakefield/fnmatch"

但它没有抓住它。简单地运行go get如何确定是否下载了某些内容?

最后,使用了供应商系统。我如何用 fnmatch 填充它?我要手动创建它吗?这一切看起来都很麻烦。

我以为 go get 是为了让这一切变得简单?

【问题讨论】:

  • 你正在修改的这个github项目,是你自己的还是fork的?
  • journalbeat 的分叉副本。我只是想知道为什么 go get 也不会自动抓住它。这就像魔术一样。我认为我不应该查看 go 源代码来弄清楚。
  • go get 检查您的GOPATH 是否有给定的导入路径。如果存在,它不会做任何事情。如果您想更新到最新版本,请使用 -u args 和 go get。然后它会将您的导入路径刷新到最新版本。
  • go get -u 打印出:包 _/home/matthewh/dev/journalbeat:无法识别的导入路径“_/home/matthewh/dev/journalbeat”(导入路径不以主机名开头)
  • go 包管理感觉很糟糕。是否有关于它如何工作的不错的文章?当遵循示例时,它们不适用于上述导入。为什么不呢?

标签: go


【解决方案1】:

尝试使用依赖管理器:最新且积极开发的管理器是 golang/dep
阅读dep "issue" 943,使用:

dep ensure

这将通过导入分析设置供应商依赖项,如果需要,您可以配置锁定它们。

【讨论】:

  • 谢谢。下周我会试试看。
  • @Matt 我已经编辑了答案以引用正确的 go dep 项目。
  • 谢谢。看来 journalbeat 可能一直在使用 govendor 之类的东西,因为它在 vendor 文件夹中有一个 vendor.json 文件。现在一切都很好。我确实遇到了一些项目布局问题。
【解决方案2】:

尝试go get 与详细标志-v 类似:

go get -v github.com/danwakefield/fnmatch

这将显示更多详细信息。在此处发布结果。

【讨论】:

    【解决方案3】:

    我们为 GO 使用 Glide 包管理工具。去看看gitHub link

    【讨论】:

      猜你喜欢
      • 2023-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      相关资源
      最近更新 更多