我正试图在我的项目中实现dep。这一切都很好,但它也添加了一个供应商目录。我现在需要更新我的工具,以忽略这个目录,否则我的销售包将被修改,否则我会得到错误的警告。我目前正在使用以下工具:
这些工具也在CI中使用。我确实想保持自动格式化使用goimports,但我愿意开始使用金工。我并不是真正地寻找一个解决方案使用grep和找到魔术。
如何使这些工具忽略vendor/
发布于 2017-11-28 12:33:32
金工有一个“-卖主”标志来忽略供应商文件夹。该标志将所需参数传递给基础工具,以忽略该文件夹。
因此,一种解决方案是只使用govet,golint和goimport与gometalinter。
gometalinter --disable-all --enable=vet --enable=golint --enable=goimports --vendor ./...另一种解决方案可能(从要旨复制):
goimports -d $(find . -type f -name '*.go' -not -path "./vendor/*")我更喜欢第一个解决方案。这样,您就可以根据需要轻松地添加其他指针。
发布于 2017-11-28 13:07:24
为了避免扫描$GOPATH中的目录以查找Go文件,goimports在$GOPATH/src/.goimports上有一个配置文件,其中可能包含空行、注释行(以‘#’开头),或者在扫描时指定相对于配置文件的目录命名行。不允许全球化或正则化模式。使用"-v“详细标志来验证它是否有效,并查看goimport正在做什么。
https://godoc.org/golang.org/x/tools/cmd/goimports
因此,您可以将供应商dir添加到$GOPATH/src/.goimportsignore文件中,例如:
github.com/foo/bar/vendor发布于 2022-08-27 09:52:44
另一个狡猾但行之有效的解决方案就是这样运作的:
for item in `find . -type f -name '*.go' -not -path './vendor/*'`
do
goimports -l -w $item
done如果你喜欢单线的话:
for item in `find . -type f -name '*.go' -not -path './vendor/*'`; do goimports -l -w $item; donehttps://stackoverflow.com/questions/47529611
复制相似问题