[英]Is there a way to get ALL packages and dependencies of Go programs in a given directory and its subdirectories using Go standard tooling?
我有一個很大的 Go 包目錄,它實際上是我的 $GOPATH/src 目錄。 我正在嘗試以遞歸方式獲取該目錄的所有子目錄(包括供應商目錄)中的所有軟件包的列表(如果可能的話,最終還有它們的版本,但即使名稱也是一個不錯的開始)。 當我在 $GOPATH/src 中運行go list all ./...
時,我收到一堆消息:
目錄 [foo] 中的代碼需要導入 [bar]
但是,如果我導航到單個包工作目錄,它似乎可以工作。 我也不確定為什么它實際上確實在上面的命令中找到了包,但是顯示了那個錯誤,當我向下導航到每個包的目錄時它沒有顯示。 有沒有辦法使用 Go 工具集指定這樣的遞歸查找?
我也不確定為什么它實際上確實在上面的命令中找到了包,但是顯示了那個錯誤,當我向下導航到每個包的目錄時它沒有顯示
這似乎是src/cmd/go/internal/load/pkg.go
if !cfg.ModulesEnabled && data.err == nil &&
data.p.ImportComment != "" && data.p.ImportComment != path &&
!strings.Contains(path, "/vendor/") && !strings.HasPrefix(path, "vendor/") {
data.err = fmt.Errorf("code in directory %s expects import %q", data.p.Dir, data.p.ImportComment)
}
在未啟用模塊項目,與vendor/
包,你會得到這個錯誤(而不是內部的相同的命令運行vendor
的文件夾,這將不會觸發上面顯示的條件)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.