GoLand 不内置依赖漏洞扫描,需手动集成 govulncheck 或 trivy 等 CLI 工具;必须通过 External Tools 配置,配合 go mod verify、govulncheck -deps -test 和 CI 固化闭环才能真正落地。

GoLand 本身不提供内置的依赖漏洞扫描插件,所有“自动检测依赖漏洞”的能力都得靠外部 CLI 工具 + 手动集成实现。别指望点开 Settings 就能勾选一个“启用漏洞扫描”——那不存在。
govulncheck 必须手动配置为 External Tool
GoLand 没有原生支持 govulncheck 的 UI 集成,但你可以把它加进 External Tools 里,实现一键触发扫描:
- 打开 Settings → Tools → External Tools,点击 + 添加新工具
-
Program填你本地安装的路径,比如$GOPATH/bin/govulncheck或/usr/local/go/bin/govulncheck -
Arguments推荐写成:-deps -test -format=json -json ./ > $ProjectFileDir$/govuln-report.json(-deps和-test缺一不可,否则漏掉 70%+ 的间接依赖漏洞) -
Working directory设为$ProjectFileDir$,确保在项目根目录执行 - 勾选
Show console when a tool is run,方便看原始输出;但注意:govulncheck -json总是返回 exit code 0,不能靠红/绿状态判断成败,得自己打开govuln-report.json查"Vulnerabilities"字段
trivy 扫描需提前校验 go.sum,否则结果不准
想用 trivy 替代或补充 govulncheck,必须先确认 go.sum 已提交且通过校验,否则它会 fallback 到模糊匹配,误报率飙升:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 在 External Tools 里新增一条,
Program填trivy路径(如/usr/local/bin/trivy) -
Arguments推荐:fs --security-checks vuln --severity HIGH,CRITICAL --format json -o $ProjectFileDir$/trivy-report.json ./ - ⚠️ 关键前置动作:在运行 trivy 前,必须确保 CI 或本地已执行过
go mod verify,且环境变量GOSUMDB=sum.golang.org已设置——否则trivy解析的go.sum可能是被中间人篡改过的 - 别用
trivy repo扫本地目录,它跳过go.sum校验,和govulncheck ./一样只扫显式依赖
CI 流水线才是真落地点,GoLand 只是辅助入口
你在 GoLand 里点一次 External Tool,只是临时验证;真正“定期检测”“失败阻断”“覆盖全路径”,只能靠 GitHub Actions 或 GitLab CI 实现:
- GoLand 的 External Tool 不会自动跑
govulncheck -test ./和govulncheck ./两遍,而真实风险常分属不同调用链 - 它也不会自动检查
./internal/子模块——如果你的项目结构含 internal 包,govulncheck ./默认不扫,必须显式写成govulncheck ./... ./internal/... - 它更不会帮你做
go build -a -v验证升级兼容性,或go test -race ./检查并发 bug——这些才是升级后是否真安全的决定性动作 - 最常被忽略的一环:
go mod vendor是否同步更新?GoLand 不提醒你,但go build -mod=vendor时若 vendor 目录陈旧,仍会悄悄联网拉旧版依赖
复杂点不在工具怎么装,而在你是否意识到:漏洞扫描不是“运行一次就安心”,而是要让 govulncheck -deps -test、go mod verify、go build -a -v 这三者形成闭环,并且这个闭环必须固化在 CI 中——GoLand 里的按钮,只是让你少敲几个字而已。

















