【发布时间】:2018-05-30 21:01:00
【问题描述】:
我目前正在使用vendor/ 目录在本地供应我的依赖项。
go list -f '{{join .Deps "\n"}}' ./... |grep -Eo 'vendor/.*'
这显示了我构建中使用的所有“构建依赖项”(从vendor/ 使用)。此功能记录在这里:https://golang.org/cmd/go/#hdr-List_packages
但它不包括您的“测试依赖项”!
所以要找到我的“测试依赖项”,我运行这个命令:
$ go list -f '{{join .TestImports "\n"}}' ./... |grep -Eo 'vendor/.*'
vendor/github.com/stretchr/testify/assert
...
它正确列出了“测试导入”,但没有列出这些测试导入的“依赖项”。
例如,上面列出的vendor/github.com/stretchr/testify/assert 目录实际上依赖于vendor/github.com/pmezard/go-difflib/difflib(以及其他一些包)。上面的输出中没有显示!
但是如果我运行这个命令,它会显示testify/assert的依赖关系:
$ go list -f '{{join .Deps "\n"}}' ./vendor/github.com/stretchr/testify/assert | grep -Eo 'vendor/.*'
vendor/github.com/davecgh/go-spew/spew
vendor/github.com/pmezard/go-difflib/difflib
...
所以看来我需要在所有“测试导入”上调用 go list -f '{{join .Deps "\n"}}' 来查找“所有测试依赖项”?
有没有更有效的方法来做到这一点,最好是通过一个 go list 调用和一些模板?
【问题讨论】:
标签: go