【问题标题】:Go mod tidy removes linters from go.modGo mod tidy 从 go.mod 中删除 linter
【发布时间】:2020-03-17 01:45:05
【问题描述】:

在我的小项目中,我有一个脚本,它通过运行静态代码检查来确保正确的代码质量,例如,我使用errcheck 来验证我是否处理了代码中的每个错误。 在dep 中,有一个专门针对这种依赖关系的部分,称为required

将此用于:linter、生成器和其他开发工具:

  • 您的项目需要
  • 不是由您的项目直接或传递地导入的

对于 go 模块,我可以通过执行以下命令获取给定版本的 errcheckgo get github.com/kisielk/errcheck@v1.2.0

但是,当我执行时,它将从go.mod 中删除: go mod tidy。有没有可能避免这种情况?

【问题讨论】:

  • 您可以只使用 _ 而不是名称导入 errcheck,因此 goimports 不会删除导入并且 go mod tidy 应该可以工作

标签: go go-modules


【解决方案1】:

在 Go 模块中,目前“代码”、“测试”和“工具”依赖之间没有区别:依赖就是依赖。

如果您想记录工具的特定版本,您可以在通常被build constraints 排除的源文件中添加该工具路径的import,例如// +build tools

例如:

// +build tools

// Package tools records tool dependencies. It cannot actually be compiled.
package tools

import _ "github.com/kisielk/errcheck"

(正如 JimB 所说,有关更多详细信息,请参阅 http://golang.org/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-04
    • 2023-02-01
    • 2023-02-14
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多