1 回答
TA贡献1788条经验 获得超4个赞
对此的支持包含在go工具本身中。来自问题:如何列出已安装的 go 包
您可以使用
go list -f "{{.ImportPath}} {{.Imports}}" ./...
列出包及其依赖项(包导入的包)。在srcGo 工作区的文件夹中执行它。或者
go list -f "{{.ImportPath}} {{.Deps}}" ./...
其中递归列出包及其依赖项。
是的,这不是您想要的方向,因为您想要导入特定包的包。但是您可以轻松地在上述命令的输出中搜索您的包名称。您的包被列为依赖项的行就是您要查找的行;这些行的第一个“标记”将是src导入包的包(带有工作区文件夹的路径)。
在 Unix 系统上,您可以使用|grep过滤这些行,例如
go list -f "{{.ImportPath}} {{.Imports}}" ./... |grep yourpackage
(这还将列出包含您的包及其依赖项的行。)
例子:
假设您有 2 个包:my/pack1and my/pack2,其中my/pack1什么都不导入,而my/pack2importfmt和my/pack1,上述命令的输出将包括:
path/to/workspace/src/my/pack1
path/to/workspace/src/my/pack2 [fmt my/pack1]
并且您正在寻找导入的包my/pack1:您可以看到my/pack2导入它,因为它my/pack1被列为依赖项my/pack2
还有一个开源项目就是这样做的:https : //github.com/cespare/deplist
- 1 回答
- 0 关注
- 121 浏览
添加回答
举报