如果你想测试 '$GOPATH/src/...' 下的依赖关系,只需暂时删除项目根目录中的每个 glide 文件(glide.yaml、glide.lock 等...)。然后,如果您需要再次使用“供应商”依赖项,您可以放回这些文件。
更新 1
我一直在为我的项目寻找相同的解决方案,然后我发现 glide 文档在 glide.yaml 上为导入指定了一个额外有用的参数。根据官方文档:
repo
:如果包名不是 repo 位置或者这是一个私有存储库,它可以到这里。该包将从 repo 中检出并放在包名称指定的位置。这允许使用分叉。
在这种情况下,你只需将你的代码推送到某个地方(我猜是你的 $GOPATH/src/github.com/hyperledger/burrow 的私人仓库的 GitHub 或 Gitlab),然后编辑你的 glide.yaml:
- package: github.com/tendermint/tendermint <-- vendor name dependencies
repo: github.com/myrepo/tendermint <-- your remote fork
version: vx.x.x or your sha commit code
通过这种方式,您可以从您的正式版本切换到您的 fork 并进行测试。要返回您的官方版本,只需删除或评论 repo 和版本属性:
- package: github.com/tendermint/tendermint <-- vendor name dependencies
# repo: github.com/myrepo/tendermint <-- your remote fork
# version: vx.x.x or your sha commit code
我现在正在以这种方式测试我的 fork,您不需要将导入路径更改为代码,希望这会有所帮助。
更新 2
另一种有用的方法是使用glide mirror:
镜像提供了将存储库位置替换为原始镜像的另一个位置的能力。当您想要为持续集成 (CI) 系统提供缓存或想要在本地位置处理依赖项时,这很有用。
我想这是最好的解决方案,例如,在命令行类型上:
$ glide mirror set github.com/tendermint/tendermint file:///User/yourname/Gospace/src/github.com/tendermint/tendermint
这将在您的 GLIDE_HOME 中创建一个 mirror.yaml(如果不存在,则将放在您的 $USER/.glide 文件夹下)。现在你可以测试你的本地版本(在 GOPATH 下)而不用 fork 你的项目(正如我上面写的)。完成测试后,只需将其删除:
$ glide mirror remove github.com/tendermint/tendermint