使用“go get”下载二进制文件而不将它们添加到 go.mod

2024-01-09

我在我的项目和构建系统(例如 Travis CI)中使用 Go 模块,我正在下载一个命令行实用程序(用 Go 编写)go get协助我的构建过程,例如:

go get github.com/mitchellh/gox

然而,这go get导致文件被添加到我的go.mod文件。这会污染构建环境,导致它变得“脏”(因为 git 中跟踪的某些文件发生了更改,在本例中为 go.mod 和 go.sum),我使用git describe --always --dirty --tag描述我的构建,它显示为“脏”。

有没有办法“获取”二进制文件来下载它,而不将其添加到 go.mod/go.sum 中?

我尝试过将 GOPATH 设置到其他地方,即使如此,go get更新 go.mod/go.sum 将其添加为// indirect依赖性。

dir="$(mktemp -d)"; \
  env GOPATH="$dir" go get github.com/mitchellh/gox && \
  mv "$dir/bin/gox" "$(go env GOPATH)"/bin/gox

转到 1.16 及以上

Go 1.16(2021 年 2 月发布)包含一项更改,可以在不影响的情况下安装二进制文件go.mod.

问题 40276 https://golang.org/issue/40276跟踪提案:

cmd/go:“go install”应该在模块外部以模块模式安装可执行文件

这是在CL 254365 https://go-review.googlesource.com/c/go/+/254365。作为此更改的一部分,您可以运行例如:

go install golang.org/x/tools/cmd/goimports@latest

安装二进制文件而不影响go.mod.

要安装特定版本,请替换@latest例如@v0.1.5.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用“go get”下载二进制文件而不将它们添加到 go.mod 的相关文章

随机推荐

  • Listview数据绑定导致formview数据丢失

    在我的代码中 通过 Formview 研究后 我需要调用 listview databind 这使得无法获取 Formview 数据 即使它们仍然出现在屏幕中 这是我的代码 protected void DemandeSearchFormV
  • 如何从 pandas 数据框中的每一列创建子图

    我有一个包含 36 列的数据框 df 这些列绘制在单个绘图图表上 并使用下面的代码以 html 格式显示 import plotly offline as py import plotly io as pio pio write html
  • Servlet 3.0 的构造函数依赖注入?

    从 Servlet 3 0 开始 可以通过编程方式注册 Servlet 实例javax servlet ServletContext addServlet 这个类还有一个createServlet分析一些注释并执行依赖注入的方法 我想如果我
  • 如何枚举 ui-router 中的注册状态?

    我想知道是否有办法在使用时列出所有注册状态用户界面路由器 https github com angular ui ui router 如果您查看文档 state get 对于最新版本的 ui router 您会注意到 不向函数传递任何参数应
  • 为什么 javascript typeof 总是返回“object”

    我哪里做错了 我会等待 Class 作为此代码的结果 但它不会 这是来自对象函数 Typeof 不是这样工作的 它只返回内置类型 你可以尝试 this constructor name Class 它将一直检查原型链 看看是否this或任何
  • Safari不派冰候选人

    在 Safari 中不起作用的示例 https github com Kurento kurento tutorial node tree master kurento one2many call https github com Kure
  • Common lisp、CFFI 和实例化 C 结构

    我已经在谷歌上搜索了大约 哦 三个小时 寻找这个 问题 的解决方案 我试图弄清楚如何使用 CFFI 在 lisp 中实例化 C 结构 我在 c 中有一个结构 struct cpVect cpFloat x y 简单吧 我已经自动生成了到此结
  • Python json.dumps() 将我的所有数据输出到一行中,但我希望每个条目都有一个新行

    我正在使用 Python 和一些 json 数据 我正在循环访问我的数据 都是字典 当我将循环值打印到控制台时 我每行得到 1 个字典 但是 当我使用 json dumps 执行同一行代码将对象转换为能够输出的字符串时 我会在字典中得到多行
  • 在 Xcode 中强制刷新代码签名

    在我们的环境中 我们跨多个项目和平台共享资源 为 iPhone 进行构建时 仅需要这些资源的子集 由于该子集仍然相当大 因此我们有一个清单文件列出了其中的内容 这限制了副本 我们有自己的 Python 脚本来执行复制 仅刷新已更改的文件 我
  • Discord.js - 如何编辑 message.embed() 语句?

    我正在执行 ping 命令 编码非常简单 但我完全不知道如何编辑我正在使用的嵌入 这是我的代码 我正在使用命令处理程序来解释exports run 语句 const Discord require discord js exports ru
  • 记住在整个网站上按下的选项卡

    我创建了自己的带有超链接和 div 的选项卡 我将它们放在侧边栏中 当单击超链接时 我在相关 div 上使用 jquery show 和 hide 它工作正常 但是 我希望在用户导航时在整个网站上记住最后单击的链接 选项卡 我怎样才能做到这
  • Jquery 单击事件 - 需要两次单击才能触发

    这可能非常简单 但我正在努力找出发生了什么 在 JS 小提琴上 http jsfiddle net 3hHAX http jsfiddle net 3hHAX 有两个链接输出到 打开视频模式 正如链接文本所示 这两个链接应该打开一个模型弹出
  • 在 R 中排列 3 维列联表以运行 Cochran-Mantel-Haenszel 分析?

    我正在尝试在 R 中运行 Mantel Haenszel 分析 以确定在考虑组内 诊断 比率时比例测试的比较是否仍然显着 此测试可在 stats 包中找到 library stats mantelhaen test x 读完一些书后 我发现
  • 如何从 Cython 调用 C-API 函数,例如 PyUnicode_READ_CHAR?

    我正在使用 Cython 来加速对字符串 unicode CPython 3 6 进行操作的函数 我如何调用 CPythonPy UCS4 val PyUnicode READ CHAR my string my index 来自我的 Cy
  • Android:MaterialButton 覆盖 Style 中的 textColor

    我想定义一个替代按钮样式 使用我的辅助颜色作为背景和 colorOnSecondary分别为文本 但我正在努力获取样式中定义的 textColor MaterialButton 使用 私有 选择器绘制作为 textColor 它使用 col
  • Win32 下的堆损坏;如何定位?

    我正在研究一个多线程正在损坏堆的 C 应用程序 定位这种损坏的常用工具似乎不适用 源代码的旧版本 18 个月前 表现出与最新版本相同的行为 因此这种情况已经存在很长时间了 只是没有引起注意 不利的一面是 源增量不能用于识别错误何时引入 有a
  • 如何实现SpriteKit定时器?

    我目前正在尝试为我的精灵套件游戏实现一个计时器 但我没有让它工作 定时器的初始值始终保持不变 我假设我需要以某种方式 某处更新标签 但我不知道如何以及在哪里 我不明白这一点 有任何想法吗 这是我的 GameScene 类中的代码 let l
  • 如何在 Python 中进行“基于性能”(基准)单元测试

    假设我的代码库已达到尽可能高的单元测试覆盖率 超过某一点 增加覆盖范围就不会产生良好的投资回报率 接下来我想测试一下性能 对代码进行基准测试 以确保新的提交不会不必要地减慢速度 我对 Safari 非常感兴趣零容忍政策 http webki
  • 在转换器(IValueConverter)中使用“await”不起作用?

    我的 Windows Phone 应用程序中有一个转换器 但您似乎无法在其中使用 等待 方法 public object Convert object value Type targetType object parameter strin
  • 使用“go get”下载二进制文件而不将它们添加到 go.mod

    我在我的项目和构建系统 例如 Travis CI 中使用 Go 模块 我正在下载一个命令行实用程序 用 Go 编写 go get协助我的构建过程 例如 go get github com mitchellh gox 然而 这go get导致