簡體   English   中英

有沒有辦法使用 Go 標准工具獲取給定目錄及其子目錄中 Go 程序的所有包和依賴項?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM