goimports需要忽略供应商软件包

sno*_*uis 4 continuous-integration go go-toolchain

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

  • goimports -w
  • 去兽医
  • 皮棉

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

如何使这些工具被忽略vendor/

小智 5

gometalinter具有“ --vendor”标志,可忽略供应商文件夹。该标志会将所需的参数传递给基础工具以忽略该文件夹。

因此,一种解决方案是仅将govet,golint和goimports与gometalinter一起使用

gometalinter --disable-all --enable=vet --enable=golint --enable=goimports --vendor ./...
Run Code Online (Sandbox Code Playgroud)

另一个解决方案可能是(从gist复制):

goimports -d $(find . -type f -name '*.go' -not -path "./vendor/*")
Run Code Online (Sandbox Code Playgroud)

恕我直言,我希望第一个解决方案。这样,您可以根据需要轻松添加其他短绒。