转载请注明出处:

  go mod 命令是用于管理 Go 语言项目的模块依赖关系的工具。Go 语言从 1.11 版本开始引入了模块支持,并在后续版本中逐渐完善。模块是 Go 语言代码的一个集合,每个模块都有一个唯一的版本标识。通过使用模块,可以更好地管理项目的依赖关系,确保代码的兼容性和可维护性。

以下是 go mod 命令的一些常见用法及其详细示例和分析:

1. 初始化模块

  命令go mod init <module-name>

  作用: 初始化一个新的模块,创建一个 go.mod 文件,并设置模块的名称。

  示例

mkdir myproject
cd myproject
go mod init myproject.com/myproject

2. 获取依赖

  命令go mod tidy

  作用: 添加缺失的依赖项,并移除未使用的依赖项,确保 go.modgo.sum 文件是最新的。

  示例

go get github.com/gorilla/mux
go mod tidy
  • go get 命令用于获取依赖项,并将其添加到 go.mod 文件中。

  • go mod tidy 命令会检查当前项目中的所有导入路径,确保 go.modgo.sum 文件中的依赖项是最新的,并且没有多余的依赖项。

3. 显示依赖关系

  命令go mod graph

  作用: 显示模块依赖关系图。

  示例

go mod graph
  • 该命令会输出当前模块及其依赖模块的关系图,以空格分隔的模块路径表示。

  • 例如,输出可能类似于:

myproject.com/myproject github.com/gorilla/mux@v1.8.2
github.com/gorilla/mux@v1.8.2 golang.org/x/net@v0.0.0-20210503060351-7e0cfde77e3d

4. 验证依赖

  命令go mod verify

  作用: 验证 go.modgo.sum 文件中记录的依赖项的哈希值是否匹配。

  示例

go mod verify
  • 该命令会检查 go.modgo.sum 文件中记录的依赖项的哈希值是否与实际下载的依赖项的哈希值匹配。

  • 如果不匹配,则表明依赖项可能被篡改或损坏。

5. 切换 Go 版本

  命令go mod edit -go=<version>

  作用: 切换模块使用的 Go 版本。

  示例

go mod edit -go=1.19
  • 该命令会修改 go.mod 文件中的 go 指令,将其设置为指定的 Go 版本。

  • 例如,将 go 1.18 改为 go 1.19

go mod 命令是 Go 语言模块管理的重要工具,通过它可以方便地初始化模块、获取依赖、显示依赖关系、验证依赖、切换 Go 版本以及替换依赖。

go mod使用小结的更多相关文章

  1. mod性质 学习笔记

    mod性质小结 \(a\equiv b(\mod m)\) $ \rightarrow \( \)a-b=k*m,k\in Z$ \(a\equiv b且c\equiv d(\mod m)\) \(\ ...

  2. Linux sort命令使用方法

    sort命令在Linux中主要用于对文件进行排序,并将排序结果输出.sort命令输入可以是指定的文件和数据流.本文主要介绍sort命令的基本语法和常见使用实例. sort命令语法 sort命令格式:s ...

  3. [系列] 使用 go modules 包管理工具(一)

    目录 概述 初始化 添加依赖包 go mod 命令 小结 源码地址 概述 我想实现一个开箱即用的 API 框架的轮子,这个轮子是基于 Gin 基础上开发的. 为什么是开箱即用,它会集成哪些功能? 以上 ...

  4. [bzoj3162]独钓寒江雪_树hash_树形dp

    独钓寒江雪 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3162 题解: 首先,如果没有那个本质相同的限制这就是个傻逼题. 直接树形dp ...

  5. [数据结构]RMQ问题小结

    RMQ问题小结 by Wine93 2014.1.14   1.算法简介 RMQ问题可分成以下2种 (1)静态RMQ:ST算法 一旦给定序列确定后就不在更新,只查询区间最大(小)值!这类问题可以用倍增 ...

  6. [数据结构]KMP小结

    KMP小结   By Wine93 2013.9 1.学习链接: http://www.matrix67.com/blog/archives/115 2.个人小结 1.KMP在字符串中匹配中起着巨大作 ...

  7. Lua的require和module小结

    Lua的require和module小结  module特性是lua5.1中新增的,用于设置Lua文件自己的模块,最常用的方式是module(name,package.seeall),有时候lua文件 ...

  8. 常用Linux命令小结

    常用Linux命令小结 Linux下有很多常用的很有用的命令,这种命令用的多了就熟了,对于我来说,如果长时间没有用的话,就容易忘记.当然,可以到时候用man命令查看帮助,但是,到时候查找的话未免有些临 ...

  9. 45个非常有用的 Oracle 查询语句小结

    45个非常有用的 Oracle 查询语句小结 这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 ...

  10. GopherChina第二天小结

    GopherChina第二天小结 今天继续昨天的文章,参加了第二天的GopherChina,例行完成总结. 基于MINIO的对象存储方案在探探的实践 关于对象存储,之前用过seaweedfs,但是对M ...

随机推荐

  1. containerd 拉取k8s.gcr.io/pause镜像i/o timeout

    由于k8s.gcr.io 需要连外网才可以拉取到,导致 k8s 的基础容器 pause 经常无法获取.k8s docker 可使用代理服拉取,再利用 docker tag 解决问题 docker pu ...

  2. 常回家看看之house_of_kiwi

    house of kiwi 前言:house_of_kiwi 一般是通过触发__malloc_assert来刷新IO流,最后可以劫持程序流或者通过和setcontext来打配合来进行栈迁移来得到fla ...

  3. 10 分钟快速搞懂 Lambda 表达式

    Lambda简介 Lambda表达式是Java8引入的一个重要特性,相当于一个语法糖. 语法糖(Syntactic sugar)是指在编程语言中引入的一种语法,它可以使代码更易读.更简洁,但并没有引入 ...

  4. QT QML实用效果之实现页面切换效果

    简介 本文介绍了如何使用QT QML和JavaScript实现页面动态加载和切换的效果. 文章目录 效果 JavaScript代码:butianyun.js文件 QML代码:主页面 页面A QML代码 ...

  5. 第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞 - Shortcut

    https://www.kancloud.cn/manual/thinkphp5_1/354000 ThinkPHP-Vuln-master

  6. 获取sql语句

    1.$model->_sql(); 方法实际执行的就是 $model->getLastSql(); 2.fetchSql fetchSql用于直接返回SQL而不是执行查询,适用于任何的CU ...

  7. thinkphp在原字段上面进行加减操作

    经常有需要对某个数据表的计数字段进行加减操作,我们来看下在ThinkPHP中的具体使用办法. 最简单的,使用下面方法对score自加,第二个参数也可以不要,默认加1:   M('User')-> ...

  8. 墨天轮访谈 | SelectDB 衣国垒:Apache Doris(incubating)1.0版本特性解析与未来规划

    分享嘉宾:衣国垒 Apache Doris Committer.SelectDB 联合创始人&CTO 整理:墨天轮社区 导读 大家好,我是来自Apache Doris社区的衣国垒,也是Sele ...

  9. 基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!

    前言 今天大姚给大家分享一款基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用:ZR.Admin.NET. 开源免费(基于MIT License开源协议).代码量少.学习简单. ...

  10. 一次彻底讲清如何处理mysql 的死锁问题

    MySQL 死锁 是指两个或多个事务互相等待对方持有的锁,从而导致所有事务都无法继续执行的现象.在 InnoDB 存储引擎中,死锁是通过锁机制产生的,特别是在并发较高.业务逻辑复杂的情况下,更容易发生 ...