登录
首页 >  Golang >  Go问答

让 goimports 跳过供应商内的文件

来源:stackoverflow

时间:2024-03-26 20:21:34 224浏览 收藏

在使用 Go 1.9 之前的版本时,`goimports -l $(go list -f {{.dir}} ./...)` 命令会格式化供应商目录中的文件,导致执行速度缓慢。要避免这种情况,请确保使用 Go 1.9 或更高版本,因为在这个版本中,`./...` 不再与供应商目录匹配。

问题内容

我想设置一个 ci 系统,当代码未根据 goimports 正确格式化时,该系统会失败。

我如何列出我的目录:

go list -f {{.dir}} ./...
/users/felix/gocode/src/github.com/xxxx/yyy
/users/felix/gocode/src/github.com/xxxx/yyy/cmd/foo
/users/felix/gocode/src/github.com/xxxx/yyy/cmd/dev
/users/felix/gocode/src/github.com/xxxx/yyy/pkg/monitoring/top

我最终如何运行goimports

goimports -l $(go list -f {{.Dir}} ./...)
/Users/felix/gocode/src/github.com/XXX/YYY/config.go
/Users/felix/gocode/src/github.com/XXX/YYY/raid_test.go
/Users/felix/gocode/src/github.com/XXX/YYY/vendor/github.com/shirou/gopsutil/disk/disk_freebsd.go
/Users/felix/gocode/src/github.com/XXX/YYY/vendor/github.com/shirou/gopsutil/disk/disk_linux.go
/Users/felix/gocode/src/github.com/XXX/YYY/vendor/golang.org/x/crypto/ssh/terminal/util_solaris.go

如您所见,它还列出了 vendor 中的文件。执行也需要相当长的时间,所以我猜它实际上是在检查所有文件。 我真的只关心 vendor 之外的文件。


解决方案


我认为你使用的是<1.9 Go版本。从 1.9 开始 ./... 不应与供应商目录匹配。请参阅https://golang.org/doc/go1.9#vendor-dotdotdot

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>