gpt4 book ai didi

go - 如何列出 Go 项目中的所有导入周期?

转载 作者:行者123 更新时间:2023-12-05 03:32:43 26 4
gpt4 key购买 nike

我正在重构一个 Go 项目,其中所有内容都在一个模块中,拆分出子包。完成后,有许多导入周期。为了让项目再次编译,我必须消除它们。然而,在做了一个我认为已经消除了循环的更改之后,导入循环计数似乎保持不变。我用这个命令计算周期数:

go build 2>&1 | grep package | wc -l

它一直报告 6,即使在我完成似乎应该删除一个循环的工作之后,甚至在我不再看到我在列表中删除的循环之后也是如此。这让我怀疑它是否只报告了一部分问题。

我也试过

go build -gcflags="-e" 2>&1 | grep package | wc -l

https://menno.io/posts/showing-all-go-compiler-errors/ 所建议, 但它给出了相同的结果。

最佳答案

How can I list all the import cycles in a Go project?

你可以试试

go list -f '{{join .Deps "\n"}}' <import-path>

将在 - 或当前目录中显示包的导入依赖项(如果留空)。或者

go list -f '{{join .DepsErrors "\n"}}' <import-path>

希望在您的案例中显示一些有用的信息。

此外,还有 godepgraph:https://github.com/kisielk/godepgraph

go get github.com/kisielk/godepgraph

基本用法

godepgraph -s path/to/my/package

enter image description here

关于go - 如何列出 Go 项目中的所有导入周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70414409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com