【golang】24、go get 和 go mod:indrect 与 go mod tidy

文章目录

go get 会执行如下操作:

  • 操作 go.mod 文件(add、update、remove)
  • 下载依赖到 $GOPATH/pkg/mod 中
  • 若已安装,则更新该包,到最新版本

试验前置准备:首先删除已下载的依赖,rm -rf $GOPATH/pkg/mod/github.com/gorilla/websocket,该目录效果如下:

然后开始试验:
首先,刚开始建项目时,go.mod 只有两行 :module 名和 go 版本

module benchmarkdemogo 1.21.6

然后,在项目目录,执行 go get

➜  awesomeProject2 go get "github.com/gorilla/websocket"
go: added github.com/gorilla/websocket v1.5.1
go: added golang.org/x/net v0.17.0

则会,在 go.mod 添加两行,且均为 // indrect

module benchmarkdemogo 1.21.6require (github.com/gorilla/websocket v1.5.1 // indirectgolang.org/x/net v0.17.0 // indirect
)

其中 // indrect 表示,这是暂未使用的依赖
并且,下载源码到 $GOPATH/pkg/mod 中,下载后,效果如下:

然后,如果在项目中使用了该库的方法,例如:

import "github.com/gorilla/websocket"var (upgrader = websocket.Upgrader{}
)

此时,go.mod 是不会自动变化的

只有当手动运行

go mod tidy

时,才会消除 go.mod 中的 // indrect,表明此库已被使用,此时效果如下(可以看到 github.com/gorilla/websocket 已被使用,而 golang.org/x/net 还暂未被使用)

module benchmarkdemogo 1.21.6require github.com/gorilla/websocket v1.5.1require golang.org/x/net v0.17.0 // indirect

参考:

  • go get 和 go install 区别:https://go.dev/doc/go-get-install-deprecation
  • go.mod 的 // indrect 含义:https://stackoverflow.com/questions/72163772/why-are-all-dependency-in-go-mod-indirect

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL篇----第十四篇

系列文章目录 文章目录 系列文章目录前言一、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?二、锁的优化策略三、索引的底层实现原理和优化四、什么情况下设置了索引但无法使用前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽…

OpenId、UnionId

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. OpenId1.1 概念1.2 公众号OpenId(简称 wxopenid)同一个微信用户在小程序和公众号上的openid是不同的 1.3 openid的获取方式方式1. 调用wx…

图片视频上传压缩的考察

本文仅做上传 / 纯客户端压缩功能的调研 上传 能否在上传时就限制图片的张数?移动端不能使图库变成禁止状态,用户点击完成之后才能进行校验。 能否限制上传的文件格式?可以限制,PC端能够完美限制,移动端只能部分限制…

《Docker极简教程》--Docker环境的搭建--在Linux上搭建Docker环境

更新系统:首先确保所有的包管理器都是最新的。对于基于Debian的系统(如Ubuntu),可以使用以下命令:sudo apt-get update sudo apt-get upgrade安装必要的依赖项:安装一些必要的工具,比如ca-certi…

Visual Studio 2022中创建的C++项目无法使用万能头<bits/stdc++.h>解决方案

目录 发现问题 解决办法 第一步 第二步 第三步 第四步 最后一步 问题解决 发现问题 如果大家也遇到下面这种问题,可能是没有include文件夹中没有bits/stdc.h 解决办法 第一步 打开一个C项目,鼠标移动至头文件上右击,选择转到文档或…

怎么能批量验证收件箱有效性

批量验证收件箱有效性是确保邮件营销活动成功送达目标受众的关键步骤。以下将介绍几种方法来实现这一目标。 首先,可以使用专业的邮件验证服务。这些服务通常提供API接口或批量上传功能,能够快速检查大量邮件地址的有效性。它们通过验证邮件地址的语法、…

能源管理师——为能源可持续发展护航

能源管理师是在能源管理领域具有专业知识和技能的专业人士,他们的工作对于实现能源的有效利用和可持续发展至关重要。 能源管理师的主要职责是协助企业或组织进行能源管理,包括能源规划、能源审计、节能措施的实施和能源绩效的评估等。他们通过对能源使…

Merging of neural networks

Merging of neural networks 论文链接:https://arxiv.org/pdf/2204.09973v2.pdf源码链接:https://github.com/fmfi-compbio/neural-network-merging 简介 典型的神经网络训练从随机初始化开始,并进行训练,直到在某些局部最优中…

Win32 SDK Gui编程系列之-- 读写初始化文件(INI文件)

读写初始化文件(INI文件) 1、初始化文件(INI文件) INI文件是一种结构简单的文本文件,是配置文件的事实标准。这种文件主要在Windows中使用,但也可在其他操作系统中使用。INI文件的名称来源于这种文件的扩展名“.INI”(initialization的缩写)。扩展名还包括configuration(…

YOLOv8改进 | 利用训练好权重文件计算YOLOv8的FPS、推理每张图片的平均时间(科研必备)

一、本文介绍 本文给大家带来的改进机制是利用我们训练好的权重文件计算FPS,同时打印每张图片所利用的平均时间,模型大小(以MB为单位),同时支持batch_size功能的选择,对于轻量化模型的读者来说,本文的内容对你一定有帮助,可以清晰帮你展示出模型速度性能的提升以及轻量…

Kubernetes 是什么?

介绍 Kubernetes 是一个强大的开源系统,最初由谷歌开发,并得到云原生计算基金会(CNCF)的支持,用于在集群环境中管理容器化应用程序。它旨在提供更好的方法来管理相关的、分布式的组件和服务,跨越各种基础设…

Sublime Text 3配置 Node.js 开发环境

《开发工具系列》 Sublime Text 3配置 Node.js 开发环境 一、引言二、主要内容2.1 初识 Sublime Text 32.2 初识 Node.js2.3 接入 Node.js2.3.1 下载并安装 Node.js2.3.2 环境变量配置 2.4 配置 Node.js 开发环境2.5 编写 Node.js 代码2.6 运行 Node.js 代码 三、总结 一、引言…

【MySQL】-11 MySQL 架构及优化原理

MySQL 架构及优化原理 1 MySQL逻辑架构2 MySQL逻辑架构整体分为三层 :3 MySQL查询过程MySQL 整个查询执行过程,总的来说分为 5 个步骤 :3.1 客户端/服务端通信协议3.2 查询缓存3.3 查询优化3.4 查询执行引擎3.5 返回结果给客户端 4 查询系统性能1 分析查询语句2 索…

Kubernetes实战(二十七)-pod内多容器运行

1 在一个pod中创建多个容器 1.1 YAML文件示例 # cat multi-pods.yaml --- apiVersion: v1 kind: Pod metadata:name: multi-pods spec:containers:- name: blue-pod-containerimage: busybox:1.31.1command: ["sleep"]args: ["1000"]- name: green-p…

05 06 Verilog基础语法与应用讲解

05. 1. 位操作 计数器实验升级&#xff0c;设计8个LED灯以每个0.5s的速率循环闪烁&#xff08;跑马灯&#xff09; 1.1 方法1&#xff1a;使用移位操作符<<来控制led灯的循环亮灭 设计代码 Verilog中&#xff0c;判断操作的时候不加位宽限定是可以的&#xff0c;比如i…

学习Android的第七天

目录 Android EditText 输入框 设置默认提示文本 范例 获得焦点后全选组件内所有文本内容 范例 限制EditText输入类型 android:inputType 值列表 范例 设置最小行&#xff0c;最多行&#xff0c;单行&#xff0c;多行&#xff0c;自动换行 范例 设置文字间隔 范例 …

React环境配置

1.安装Node.js Node.js官网&#xff1a;https://nodejs.org/en/ 下载之后按默认选项安装好 重启电脑即可自动完成配置 2.安装React 国内使用 npm 速度很慢&#xff0c;可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。 ①使用 winR 输入 cmd 打开终端 ②依…

npm后Truffle找不到命令(ubantu20系统)

Truffle找不到命令 方法1方法2 方法1 # 编辑.profile vim ~/.profile # 在.profile末尾把nodejs的解压路径添加到$PATH环境变量中 PATH"$HOME/bin:$HOME/.local/bin:路径:$PATH" source 文件方法2 #ls -l 在nodejs的bin目录下查看truffle链接的脚本文件 truffle -&…

WordPress如何自建txt文本经典语录并随机显示一句话经典语录?

前面跟大家分享的『WordPress集成一言&#xff08;Hitokoto&#xff09;API经典语句功能』一文中就提供有自创API&#xff0c;其中懿古今顶部左上角显示的经典语录用的就是自建一个txt文本文件&#xff0c;然后再在前端网页指定位置随机显示语录。具体操作方法如下&#xff1a;…

突破编程_C++_面试(基础知识(6))

面试题14&#xff1a;什么是 RAII 编程方法 RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是C的发明者 Bjarne Stroustrup 提出的概念,也称为资源获取就是初始化&#xff0c;是一种管理资源、避免泄漏的编程方法。 它的基本思想是在对象的构造函数中获…