`go modvendor` 命令的目的是什么?

2024-02-04

The 文档 https://golang.org/ref/mod#go-mod-vendor says,

go modvendor命令在目录中构造一个名为vendor的目录 主模块的根目录,包含所有包的副本 支持主模块中包的构建和测试所需的。 仅通过主程序之外的包的测试导入的包 不包括模块。

golangby示例 https://golangbyexample.com/packages-modules-go-second/ says:

您还可以将供应商目录签入到您的 VCS(版本 控制系统)。这在某种意义上变得有用,因为没有一个 依赖项需要在运行时下载,因为它已经存在 在签入 VCS 的供应商文件夹中

我认为模块(go.mod,go.sum)负责版本控制。我还认为只有在第一次运行程序时才会下载依赖项。

那么命令是怎样的go mod vendor有用?它的目的或用例是什么?


Go Modules 负责版本控制,但不一定负责模块从互联网上消失或互联网不可用。如果模块不可用,则无法构建代码。

Go Proxy 会通过镜像模块在一定程度上缓解消失的模块,但它可能不会一直对所有模块都这样做:

为什么以前可用的模块在镜像中变得不可用?

proxy.golang.org 不会永久保存所有模块。造成这种情况的原因有很多,但其中一个原因是 proxy.golang.org 无法检测到合适的许可证。在这种情况下,只有模块的临时缓存副本可用,如果从原始源中删除该副本并变得过时,则该副本可能会变得不可用。校验和仍将保留在校验和数据库中,无论它们在镜像中是否变得不可用。

更多信息请访问:https://proxy.golang.org/ https://proxy.golang.org/

另一种方法是分叉模块并使用Go 模块replace指示 https://golang.org/ref/mod#go-mod-file-replace它允许将导入路径重定向到另一个,例如你的叉子,在go.mod文件而不更改您的代码。该方法由科尔曼·安西奥 https://stackoverflow.com/users/1218512/colm-anseo.

关于 Internet 访问,如果您运行大型服务器场并需要在多台计算机上安装代码,则从 Internet 下载到服务器场中的每台计算机可能效率低下且存在安全风险。使用起来可能会更有效率go mod vendor进入内部存储库并复制它。大公司使用内部方法将代码部署到其数据中心的多个服务器。

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

`go modvendor` 命令的目的是什么? 的相关文章

  • IntelliJ 2017.1.2 GOLANG 调试不适用于包中的断点

    我的应用程序由一个 main go 文件和一些包组成 当在 main go 中命中断点时 IntelliJ 按预期工作 显示变量值等 但是 当在不同的包中设置断点时 除了被命中之外 不会显示任何变量 并且不会跳过 进入功能按预期工作 被击中
  • foo.Name undefined(类型接口{}没有字段或方法名称)

    我使用本机 golang 包 container list 来管理堆栈中的 inotify 事件 当我访问堆栈的项目时 我的类型失败 我认为 import golang org x exp inotify container list lo
  • formatFloat :将浮点数转换为字符串[重复]

    这个问题在这里已经有答案了 http golang org pkg strconv http golang org pkg strconv http play golang org p 4VNRgW8WoB http play golang
  • 带 cookie 身份验证的 Gorilla websocket

    这是我的设置 我正在构建一个带有用户登录的服务 使用 Negroni 和 Gorilla 登录后 用户会获得一个会话 cookie 服务器使用该会话 cookie 来授权受保护的端点 受保护的端点之一允许用户 客户端与服务器打开 Webso
  • 如何使用golang中通过引用传递的索引访问切片中的元素

    我将切片的引用传递给函数 并且我正在函数内的切片中进行更改 我还尝试使用索引访问切片中的元素 它在 golang 中抛出异常 通过引用传递的索引访问切片中的元素的最佳方法是什么 您可以在此处找到示例代码 参考 http www reddit
  • Go 中数组的嵌套结构

    我已经开始使用https mholt github io json to go https mholt github io json to go 将 API JSON 转换为 go 结构 我真的很喜欢它 但是我对如何初始化如下所示的报告定义
  • golang从sdin扫描一行数字

    我正在尝试从标准输入读取输入 3 2 1
  • 如何使用 mongo-go-driver 有效地将 bson 转换为 json?

    我想将 bson 转换为mongo go 驱动程序 https github com mongodb mongo go driver有效地转换为 json 我应该小心处理NaN 因为json Marshal失败如果NaN存在于数据中 例如
  • 在 Go 中执行字节数组

    我正在尝试在 Go 程序中执行 shellcode 类似于使用其他语言执行此操作的方式 示例 1 C 程序中的 Shellcode https stackoverflow com questions 16626857 shellcode i
  • Ajax 将文件上传到内容类型为 Multipart 的 GoLang 服务器

    我正在尝试使用多部分表单将音频文件上传到 Golang 服务器 然而 Go 返回错误 multipart NextPart bufio buffer full 我相信这表明我的 Javascript 请求中存在不属于多部分格式的内容 这是我
  • ReverseProxy取决于golang中的request.Body

    我想构建一个 http 反向代理 它检查 HTTP 主体 然后将 HTTP 请求发送到它的上游服务器 你怎么能在 Go 中做到这一点 初始尝试 如下 失败 因为 ReverseProxy 复制传入请求 修改它并发送 但正文已被读取 func
  • 初始化嵌套匿名结构

    我有一个 json 作为 fields time id status customerId additionalDetail pageInfo start 0 rows 1000 我想将我的结构编组到上面的 json 并创建如下结构 typ
  • 从 []byte 到 char*

    我想包装一个 C 函数 它需要一个char 指向非空字节缓冲区 的第一个元素 我正在尝试使用 CGo 将其包装在 Go 函数中 以便我可以将其传递给 byte 但我不知道如何进行转换 C 函数签名的简化版本是 void foo char c
  • Go io.Pipe 的缓冲版本

    有缓冲版本吗io Pipe https golang org pkg io Pipe 在标准库或第三方库中 在我推出自己的库之前 上下文 我正在尝试使用这个解决方案 https stackoverflow com a 36229262 15
  • 是否可以获取有关 Golang 中调用者函数的信息?

    是否可以获取有关 Golang 中调用者函数的信息 例如 如果我有 func foo Do something func main foo 我怎样才能得到那个foo已被呼叫来自main 我可以用其他语言实现这一点 例如在 C 中我只需要使用
  • GAE Go — 如何对不存在的实体键使用 GetMulti?

    我发现自己需要做一个GetMulti使用键数组进行操作 其中某些实体存在 但有些实体不存在 我当前的代码 如下 返回错误 datastore no such entity err datastore GetMulti c keys info
  • 展平嵌套结构会导致切片的切片

    所以我有一个像这样的结构 type Bus struct Number string Name string DirectStations Station Station is another struct ReverseStations
  • 模板中的 bson.ObjectId

    我有一个具有 bson ObjectId 类型的结构 例如如下所示 type Test struct Id bson ObjectId Name string Foo string 我想在 html 模板中呈现它 Name Food a h
  • 打印到 stdout 会导致阻塞的 goroutine 运行吗?

    作为一个愚蠢的基本线程练习 我一直在尝试实现理发师睡觉的问题 http en wikipedia org wiki Sleeping barber problem在戈兰 对于通道来说 这应该很容易 但我遇到了一个 heisenbug 也就是
  • GoLang ssh:尽管将其设置为 nil,但仍出现“必须指定 HosKeyCallback”错误

    我正在尝试使用 GoLang 连接到远程服务器 在客户端配置中 除了用户和密码之外 我将 HostKeyCallback 设置为 nil 以便它接受每个主机 config ssh ClientConfig User user HostKey

随机推荐

  • 更改 UI 矩形变换位置

    我有这些行 GameObject bp Instantiate MyPrefab bp transform SetParent GameObject FindGameObjectWithTag ContentFactory transfor
  • Eigen::MatrixXd typedef 的替换

    全部更换最简单的方法是什么Eigen MatrixXds and Eigen VectorXd具有向量和矩阵long double元素 我的代码中的每个基本浮点变量都是类型long double 另外 每次使用矩阵或向量时 我都会使用以下类
  • 创建超级用户时 Django 2.1 NOT NULL 约束失败

    我已经使用 Django 几个月了 没有任何问题 但是当我创建一个新项目并添加超级用户时 出现以下错误 django db utils IntegrityError NOT NULL constraint failed auth user
  • .Net 中的多播支持

    为了实现使用多播向网络中的其他进程发送小型周期性消息的网络应用程序 对于在 Net 框架中使用 API 我有哪些选择 除了我当前明显的选择 System net sockets API 之外 WCF 是否提供了更简单的方法 或者说WCF纯粹
  • 如何将 POST 数据发送到 phantomjs 脚本

    我正在使用 PHP CURL 并希望通过设置下面的 postfields 数组将 POST 数据发送到我的 phantomjs 脚本 ch curl init curl setopt ch CURLOPT COOKIEJAR cookieF
  • 如何在 GitLab 中默认并排视图

    如何使 Side by side 成为我的 GitLab 安装 项目或配置文件的默认差异 2016 年 2 月更新 问题现在位于颁发CE 3071 https gitlab com gitlab org gitlab ce issues 3
  • 如何使用 htaccess 将特定域的 www 和非 www 重定向到 https

    我需要将 www 和非 www 重定向到 https 我在 stackoverflow 上到处找过 但找不到我想要的东西 规则是 example com 和 www example com 以及https example com https
  • 如何在 Erlang 中对字符串进行 XML 编码?

    我有一个 erlang 字符串 其中可能包含 1 gt Unenc string stuff lt ok 是否有一个 Erlang 函数可以解析字符串并对所有需要的 HTML XML 实体进行编码 例如 2 gt Enc xmlencode
  • 如何使用 facebook c# SDK 发送 appsecret_proof?

    我想在我的 Facebook 应用程序上使用 需要应用程序密钥 服务器 API 调用需要应用程序密钥 但如果我这样做 我会收到以下错误 GraphMethodException 100 未指定 appsecret proof 参数 描述 执
  • Spark 任务无法使用简单累加器进行序列化?

    我正在运行这个简单的代码 val accum sc accumulator 0 Progress listFilesPar foreach filepath gt accum 1 listFilesPar 是一个RDD String 这会引
  • 将 Excel 文件连接到 CPLEX

    我要使用 CPLEX 解决优化问题 在我的 file dat 中我使用SheetConnection my sheet ExcelFile xls 将 Excel 文件链接到我的 cplex 程序 然后我使用SheetRead 从 Exce
  • Enumerator.MoveNext() 的奇怪行为

    有人可以解释为什么这段代码在无限循环中运行吗 为什么MoveNext return true always var x new TempList new List
  • 从 RGB 到 BGRA 的快速矢量化转换

    在后续关于将 RGB 转换为 RGBA ARGB 转换为 BGR 的一些问题中 我想加快RGB 转 BGRA转换为SSE 假设一台 32 位机器 并且想使用内在函数 我在对齐源缓冲区和目标缓冲区以使用 128 位寄存器时遇到困难 并寻求其他
  • 如何正确地将 OData 与 ASP.net Core 集成

    我正在尝试使用 OData 和 EntityFramework 创建一个具有 简单 Web api 的新 ASP NET Core 项目 我以前曾将 OData 与旧版本的 ASP NET 一起使用 我已经设置了一个仅具有简单获取功能的控制
  • 如何在反应和表达应用程序中存储身份验证状态

    我有反应节点快递应用程序 在客户端 我使用这样的react router export default function App return div div
  • 如何在Power 8或PPC64机器上安装pytorch?

    我正在尝试安装pytorch using conda on Power 8 IBM 机器 虽然 我读过来自IBM blog https developer ibm com tutorials install pytorch on power
  • mongoimport 错误 - 失败:连接到数据库服务器时出错:没有可访问的服务器

    我目前正在尝试学习 mongodb 但无法找到该问题的解决方案 当我运行 mongoimport 命令时 出现以下错误 mongoimport host localhost port 27017 db test collection peo
  • CGAffineTransform重置

    3我有一个可以通过触摸操作的图像 假设它是一个向上的箭头图像 旋转 180 度后 箭头现在指向下方 我想重置 CGAffineTransform 属性所以它认为现在又回到了 0 度 我想要这个是因为无论图像的角度是 0 还是 180 我都必
  • 应用程序更新后 CoreData 崩溃

    我有一个非常烦人的问题 我有一个 CoreData 应用程序 目前正在生产中 一切正常 我有该应用程序的更新 但是每当在原始应用程序上安装更新时 该应用程序就会在下面的代码行处崩溃 persistentStoreCoordinator ad
  • `go modvendor` 命令的目的是什么?

    The 文档 https golang org ref mod go mod vendor says go modvendor命令在目录中构造一个名为vendor的目录 主模块的根目录 包含所有包的副本 支持主模块中包的构建和测试所需的 仅