我的团队将我们所有的 Golang 代码都放在一个 monorepo 中。
- 包含库代码的各种包子目录。
cmd
下的二进制文件/服务/工具
我们已经有一段时间了,正在做一些清理工作。是否有任何工具或技术可以找到 cmd
下的二进制文件未使用的函数?
我知道 go vet
可以找到包中未使用的私有(private)函数。但是我怀疑我们也有未使用的导出库函数。
最佳答案
UPD 2020:未使用
工具已合并到 staticcheck
中。
不幸的是,v0.0.1-2020.1.4
可能是最后一个支持这个的
特征。多米尼克explains那是因为支票消耗了很多
资源,很难做到正确。
获取该版本:
env GO111MODULE=on go get honnef.co/go/tools/cmd/staticcheck@v0.0.1-2020.1.4
使用方法:
$ staticcheck --unused.whole-program=true -- ./...
./internal/pkg/a.go:5:6: type A is unused (U1001)
下面是原始答案。
Dominik Honnef 的 unused
工具可能就是您要找的:
Optionally via the -exported flag, unused can analyse all arguments as a single program and report unused exported identifiers. This can be useful for checking "internal" packages, or large software projects that do not export an API to the public, but use exported methods between components.
关于go - 在 Golang monorepo 中查找死代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39924136/