5

我正在尝试dep在我的项目中实施。这一切都很好,但它也添加了一个供应商目录。我现在需要更新我的工具以忽略此目录,否则我的供应商包将被修改,或者我收到错误的警告。我目前正在使用以下工具:

  • 去进口 -w
  • 去看兽医
  • 去皮棉

这些工具也用于 CI。我确实想继续使用 goimports 进行自动格式化,但我愿意开始使用 gometalinter。我并不是真的在寻找使用 grep 的解决方案并找到魔法。

我怎样才能让这些工具忽略vendor/

4

2 回答 2

8

gometalinter 有一个“--vendor”标志来忽略供应商文件夹。该标志将所需的参数传递给底层工具以忽略该文件夹。

所以一种解决方案是只使用 govet、golint 和 goimports 和 gometalinter

gometalinter --disable-all --enable=vet --enable=golint --enable=goimports --vendor ./...

另一种解决方案可能是(从gi​​st复制):

goimports -d $(find . -type f -name '*.go' -not -path "./vendor/*")

恕我直言,我更喜欢第一个解决方案。这样,您可以根据需要轻松添加其他 linter。

于 2017-11-28T12:33:32.227 回答
0

为了排除 $GOPATH 中的目录不被扫描 Go 文件,goimports 尊重 $GOPATH/src/.goimportsignore 中的配置文件,其中可能包含空行、注释行(以“#”开头)或命名相对于目录的目录的行扫描时要忽略的配置文件。不允许使用通配符或正则表达式模式。使用“-v”详细标志来验证它是否正常工作,并查看 goimports 正在做什么。

https://godoc.org/golang.org/x/tools/cmd/goimports

因此,您可以将供应商目录添加到$GOPATH/src/.goimportsignore文件中,例如:

github.com/foo/bar/vendor
于 2017-11-28T13:07:24.127 回答