第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

誰在使用我的 Go 包

誰在使用我的 Go 包

Go
茅侃侃 2021-12-07 14:45:26
我的場景是我們有很多小項目在開發(fā)中,其中一些相互依賴。我們正在嘗試提供一些基于依賴關(guān)系的自動化測試。例如,當一個包被改變時,確保所有依賴的包通過它們自己的單元測試。所以問題是,在 Go 中,是否有一種方法/工具可以列出哪些包(本地工作空間)指的是給定的包?
查看完整描述

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


查看完整回答
反對 回復 2021-12-07
  • 1 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號