Golangcilint 使用手册 | 您所在的位置:网站首页 › golangci-lint报错undefined › Golangcilint 使用手册 |
# Golangcilint在新窗口打开 使用手册# 对比 GoMetaLinter Golangci-lint 是为了解决 GoMetalinter 的弊端而改版升级的。 比 GoMetaliner 快个 2 到 7 倍 共享代码缓存,消耗内存比 Gometaliner 少 26% 更精准的 issue,会内置一些 exclude 列表过滤掉误报 issue 支持增量分析 # 快速接入在 CI 系统上选用 TCA 插件,或者下载 TCA 客户端到本地机器上 因为 GolangCiLint 要求找寻到项目需要的全部依赖,否则就会执行失败。所以这里需要在 Ci 系统或者本地机器上配置好项目的依赖,并确保能够编译通过 检查是否设置了 GOPATH 和 GOROOT,在分析方案的环境变量中设置 GOPATH=$GOPATH 在 代码分析 页面上关联待分析的代码库并创建分析方案,并在代码检查-规则设置的自定义规则包里面添加 GolangCiLint 工具规则 在分析方案中增加编译命令 然后在 CI 系统上或者本地启动代码分析即可 # 高级配置# Include若项目目录结构如下图,需要设置 include 执行 myproj,比如 src/myproj/* 这是因为 GolangCiLint 分析前会优先检查所有代码文件的依赖是否齐全,所以需要设置 include,让工具只关注 include 下面的代码文件的依赖。 在分析方案的过滤配置,路径过滤中添加 include 路径。 # Q&AQ:出现 no go files to analyze 问题 A:这里可能为以下原因: 机器环境没有项目的完整依赖,使用以下命令查找对应依赖在 GOPATH 下是否存在或者 GOPATH 设置是否完整(有的项目有多个 GOPATH 内容),或者对应依赖是否存在,需要用户部署好机器环境 grep -nr "path/to/GOPATH" .没有指定 include 分析路径过滤,这样才不会检查依赖中的依赖,而是关注源码文件的依赖完整性 也可能是某 go 文件中使用到该依赖,但是 GOPATH 没有设置正确的依赖搜索路径导致。需要找到依赖相对的当前目录: grep -nr "path/to/GOPATH" .然后设置到 GOPATH 中,比如 GOPATH=$GOPATH:$SOURCE_DIR/test还有可能是部分依赖是需要编译之后生成的,需要正确填写好编译命令,使得项目编译成功。 Q:could not determine GOARCH and Go compiler 问题 A:跟问题 1 是一样的问题。解决方案也是一样。 Q:failed to run 'go env': exit status 1 问题 A:原因是找不到正确的 GOPATH。解决方案是设置 GOPATH 环境变量。 Q:GO 版本限制 A:因为 golangci-lint 用到了 go mod 特性,该特性是在 1.11 之后才有的。所以要求 go 版本在 1.11 版本以上。 |
CopyRight 2018-2019 实验室设备网 版权所有 |