1 回答

TA貢獻1788條經(jīng)驗 獲得超4個贊
對此的支持包含在go工具本身中。來自問題:如何列出已安裝的 go 包
您可以使用
go list -f "{{.ImportPath}} {{.Imports}}" ./...
列出包及其依賴項(包導入的包)。在srcGo 工作區(qū)的文件夾中執(zhí)行它?;蛘?/p>
go list -f "{{.ImportPath}} {{.Deps}}" ./...
其中遞歸列出包及其依賴項。
是的,這不是您想要的方向,因為您想要導入特定包的包。但是您可以輕松地在上述命令的輸出中搜索您的包名稱。您的包被列為依賴項的行就是您要查找的行;這些行的第一個“標記”將是src導入包的包(帶有工作區(qū)文件夾的路徑)。
在 Unix 系統(tǒng)上,您可以使用|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 關(guān)注
- 147 瀏覽
添加回答
舉報