golangci-lint报错之 `can’t run linter goanalysis_metalinter`

前文:

golangci-lint --version
golangci-lint has version v1.52.2 built with go1.20.2 from (unknown, mod sum: "h1:FrPElUUI5rrHXg1mQ7KxI1MXPAw5lBVskiz7U7a8a1A=") on (unknown)
go version
go version go1.20.2 darwin/amd64

在一次更新代码后发现原有正常运行的golangci-lint 突然不好使了:
golangci-lint run xxx
WARN [runner] Can’t run linter goanalysis_metalinter: buildir: failed to load package : could not load export data: no export data for “github.com/ugorji/go/codec”
ERRO Running error: 1 error occurred:
* can’t run linter goanalysis_metalinter: buildir: failed to load package : could not load export data: no export data for “github.com/ugorji/go/codec”

其中 重点报错为:`Can’t run linter goanalysis_metalinter`, 查询官方issue发现两种解决方案 执行go mod tidy 或因为无法构建进程导致,但对应目录下go mod tidy 执行也没有错,由于当前目录是作为工具目录被其他所引用的,所以不包含main.go 没有构建函数,所以在ci 报错目录下执行下列build构建命令:

go build ./…
/Users/huaijiahui/go/pkg/mod/github.com/gin-gonic/gin@v1.9.1/binding/msgpack.go:14:2: ambiguous import: found package github.com/ugorji/go/codec in multiple modules:
github.com/ugorji/go v0.0.0-20171122102828-84cb69a8af83 (/Users/huaijiahui/go/pkg/mod/github.com/ugorji/go@v0.0.0-20171122102828-84cb69a8af83/codec)
github.com/ugorji/go/codec v1.2.11 (/Users/huaijiahui/go/pkg/mod/github.com/ugorji/go/codec@v1.2.11)

发现存在包依赖引用冲突,该问题查询issue又发现临时解决方案mod中添加replace github.com/ugorji/go => github.com/ugorji/go/codec v1.1.7,但是添加了该replace后,go build成功了,ci又报错了:ERRO Running error: context loading failed: no go files to analyze。百思不得其解,这里发现原来是gin版本里的codec包冲突问题,于是排查是由于一个测试包引用旧版本gin导致,这里去掉gin包后,构建恢复,ci也恢复正常。

golangci-lint 静态代码检测支持多种检查lint以及各种规则通过制定golangci yaml 并且结合github action 的方式来自动化检测代码,能够省去很大一部分精力,虽然由于很多规范修正起来很麻烦,但是对于检查代码质量十分有帮助,而且养成修改习惯后,逐渐会形成很好的代码风格。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇