位于另一个项目的供应商文件夹中的供应商软件包

时间:2018-11-16 16:26:58

标签: go govendor vendoring

我正在编写依赖于某些导入的库程序包,但是我不确定如何正确处理它。

让我从目录结构开始:

go/src/github.com/
├── developer A/
│   ├── project 1
│   └── project 2
│   
└── developer B/
    └── project 3
        └── vendor
            └── project 4

项目1是一个库。它在项目2中使用,并被拉入2s供应商文件夹。因此,项目1应该包含其所有依赖项,这样客户端(例如,项目2)也不需要拉出它们。但是,项目1的一个依存关系是项目4,该项目包含在项目3s供应商文件夹中。至关重要的是,此依赖项始终必须是项目3所提供的版本。Go不允许导入指向供应商文件夹中的包,因此我无法从那里直接导入它。我该如何使用govendor解决这个问题?

1 个答案:

答案 0 :(得分:2)

Go不允许您访问另一个项目的供应商目录。听起来您的意图是确保版本。这就是go modules的任务。看看wiki了解更多信息。