Golangcilint 使用手册 您所在的位置:网站首页 golangci-lint报错undefined Golangcilint 使用手册

Golangcilint 使用手册

2024-07-14 23:28| 来源: 网络整理| 查看: 265

# 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&A

Q:出现 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 实验室设备网 版权所有