【4】Gomodule依赖管理

2023-05-16

go module是Go1.11版本之后官方推出的版本管理工具,且从Go1.13版本开始Go module作为Go语言默认的以来管理工具

  • GOMODULE
    • 要想使用GOMODULE首先要设置环境变量GOMODILE,通过它来实现开启或关闭模块的支持,它有三个值可选:off、on、auto,默认是auto。
      • GOMODULE=off:禁用模块支持,编译时会从GOPATH和vendor文件夹中找包
      • GOMODULE=on:启动模块支持,编译时会忽略GOPATH和cvendor文件夹,只根据go.mod下载依赖
      • GOMODULE=auto:当项目在$GOPATH/src外且项目根目录有go.mod文件时,开启模块支持
    • 总结:一般我们设置GOMODULE=on之后就可以使用Gomodule了,而GOMODULE=off其实类似yum本地源仓库的意思,只会在本地的仓库中寻找包,使用gomodule管理依赖后会在根目录下生产两个文件,go.mode和go.sum
  • GOPROXY
    • GOPROXY,顾名思义就是代理。我们通过GOMDULE拉取包的地址,额其实也就是类似yum里面的那个指定yum镜像源的地址的意思。

go env -w GOPROXY=https://goproxy.cn,direct

  • 常用GOMOD命令
    • go.mod命令如下:

go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)且下载全部依赖 go mod edit 编辑go.mod文件 go mod graph 打印模块依赖图 go mod init 初始化当前文件夹, 创建go.mod文件(后面指定包名或地址) go mod tidy 增加缺少的module,删除无用的module(自动刷新) go mod vendor 将依赖复制到vendor下 go mod verify 校验依赖 go mod why 解释为什么需要依赖

  • go.mod文件组成
    • module 定义包名
    • require 定义依赖包以及版本
    • indirect 间接引用

module github.com/Q1mi/studygo/blogger go 1.12 require ( github.com/DeanThompson/ginpprof v0.0.0-20190408063150-3be636683586 github.com/gin-gonic/gin v1.4.0 github.com/go-sql-driver/mysql v1.4.1 github.com/jmoiron/sqlx v1.2.0 github.com/satori/go.uuid v1.2.0 google.golang.org/appengine v1.6.1 // indirect )

  • go get
    • 下载依赖包除了我们从go.mod文件中配置以外我们还可以在命令行直接go get下载依赖包
      • 运行go get -u将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)
      • 运行go get -u=patch将会升级到最新的修订版本
      • 运行go get package@version将会升级到指定的版本号version
  • 依赖整理
    • 有的时候我们用不上这个依赖,会从源文件删除import,但是go.mod中并不会自动删除,我们需要执行go mod tidy来跟新下go mod
  • go mod exit
    • 我们除了申明式从go mod中添加依赖之外我们还可以以命令式的方式添加依赖

//格式化文件(不是go.mod文件,是格式化依赖包的文件) go mod edit //添加依赖 go mod edit -require=golang.org/x/text //移除依赖 go mod edit -droprequire=golang.org/x/text

  • 如何使用GoModule
    • 当我们从别人的项目中复制源码过来的时候
      • 第一步:在项目目录执行go mod init,来生成go.mod文件
      • 第二步:执行go get,查找项目使用的依赖,并会同时生成一个go.sum用来记录依赖的详细版本和哈希值
    • 当一个新项目的时候
      • 执行go mod init 项目名 来生成go.mod文件
      • 编辑go.mod来指定依赖
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【4】Gomodule依赖管理 的相关文章

  • 如何在服务器用docker搭建Redis集群

    用docker部署Redis集群 这里用的是分片 43 高可用 43 负载均衡 xff0c 三主三从 第一步创建网卡 span class token comment 创建网卡 span span class token function
  • P1825 [USACO11OPEN]Corn Maze S——bfs

    USACO11OPEN Corn Maze S 题面翻译 奶牛们去一个 N M N times M N M 玉米迷宫 xff0c 2
  • 7-57 租用游艇问题——dp

    长江游艇俱乐部在长江上设置了n个游艇出租站1 xff0c 2 xff0c xff0c n 游客可在这些游艇出租站租用游艇 xff0c 并在下游的任何一个游艇出租站归还游艇 游艇出租站i到游艇出租站j之间的租金为r i j 1 lt 61 i
  • 三种接口实现增删改查

    目录 ArrayListHashSetHashMap ArrayList ArrayList 实现增删改查 span class token keyword package span span class token namespace t
  • 旗帜软件工作室2021年年度交接会议总结

    只有时间的消逝 xff0c 才使我们注意到时间 在小组的一年时间过的飞快 xff0c 在这一年里我们的心智品性和专业能力都经历了充分了磨练 和一年前的我们相比 xff0c 如今的我们更加成熟稳重 xff0c 不再心浮气躁 xff1b 在自己
  • nested exception is org.springframework.beans.factory.BeanCreationException: 不能注入对象 创建对象失败 spring...

    出现错误的背景 在使用Spring 43 SpringMVC 43 Mybatis SSM集成框架时 xff0c 服务器启动就会报错 错误根源 XML配置错误 解决方案 第一步 查找springmvc xml 配置文件中 是否添加了扫描注解
  • 算法练习——(2)逢7过

    1 中国朋友们聚会时喜欢玩 34 逢7过 34 的游戏 xff0c 老外有个同样的游戏 xff0c FlipFlop xff0c 它从1计数到100 xff0c 顺序输出 当遇到3的倍数就要说 Flip xff0c 遇到5的倍数就要说 Fl
  • beego的安装和简单使用

    beego的安装和使用 beego安装升级 beebee工具的安装 使用beebee newbee apibee runbee packbee version beego beego 是免费 开源的软件 xff0c beego 源代码目前托
  • 网络爬虫——GO

    这里写目录标题 go colly网络爬虫框架goquery HTML解析goquery主要的结构怎么使用goquery常用选择器 go colly网络爬虫框架 go colly是用Go实现的网络爬虫框架 go colly快速优雅 xff0c
  • LeetCode每日一题(12)——按奇偶排序数组(双指针)

    按奇偶排序数组 1 题目2 示例3 思路4 代码 1 题目 给你一个整数数组 nums xff0c 将 nums 中的的所有偶数元素移动到数组的前面 xff0c 后跟所有奇数元素 返回满足此条件的 任一数组 作为答案 2 示例 示例 1 x
  • LeetCode每日一题(25)——最少移动次数使数组元素相等 II

    最少移动次数使数组元素相等 II 1 题目2 示例3 思路4 代码 1 题目 给定整数数组 nums 和整数 k xff0c 请返回数组中第 k 个最大的元素 请注意 xff0c 你需要找的是数组排序后的第 k 个最大的元素 xff0c 而
  • LeetCode每日一题(26)——高度检查器

    高度检查器 1 题目2 示例3 思路4 代码 1 题目 学校打算为全体学生拍一张年度纪念照 根据要求 xff0c 学生需要按照 非递减 的高度顺序排成一行 排序后的高度情况用整数数组 expected 表示 xff0c 其中 expecte
  • 乱码的原因和发展(关于编码)

    乱码的原因和发展 xff08 关于编码 xff09 正文1 引言2 什么是编码3 ASCII 美国人先搞出了 美国信息交换标准代码 4 GB 2312 我国 1980 年公布的 GB 2312 80 信息交换用汉字编码字符集 基本集 5 G
  • 左神算法笔记(异或)+C语言实现

    异或 性质运算性质应用举例1 不用额外变量 xff0c 交换两个数的值原理代码 2 找到数组中唯一一个出现奇数次的数字3 提取最右侧的1 xff08 常用 xff09 应用1 xff1a 找到数组中唯二出现的两个出现奇数次的数字代码应用2
  • C:指针+动态内存 错题(反思在最后)

    1 写一个函数将以秒计数的时间转换为以时 分 秒计数的时间 函数原型为 xff1a char seconds to int seconds 编写main调用测试它 输入格式要求 xff1a 34 d 34 提示信息 xff1a 请输入时间
  • 关于C语言头文件引用的基础及进阶知识(个人理解)

    一 lt gt 与 的区别 xff1f 使用尖括号 lt gt xff0c 编译器会到系统路径下查找头文件 xff1b 而使用双引号 34 34 xff0c 编译器首先在当前目录下查找头文件 xff0c 如果没有找到 xff0c 再到系统路

随机推荐

  • Oracle里 用sql*plus 登陆时,用户名和密码是多少啊?

    Oracle里sql plus的用户名即system用户 xff0c 密码是自己设置的密码 如果密码忘记 xff0c 可通过如下方法重置 1 win键 43 R键 xff0c 输入cmd xff0c 打开命令提示符 2 输入sqlplus
  • 黑盒测试基础

    黑盒测试方法 xff1a 黑盒测试方法 xff1a 等价类划分法 xff1a 边界值分析法 xff1a 因果图法 xff1a 决策表法 xff1a xff08 判定表法 xff09 正交试验设计法 xff1a 错误推测法 xff1a 功能分
  • Anaconda3重新安装后缺失大量文件的解决方法

    反复卸载安装Anaconda3后突然发现安装不上了 xff0c 安装完只有空空的几个文件夹 xff0c 没有scripts Library等目录 xff0c 反复尝试切换版本安装 管理员安装等方法也没用 xff0c 最后发现了真正的解决方法
  • 【小案例:一】Python识别任意位置文字

    一 xff1a 安装pytesseract和OpenCV库 xff1a pip install pytesseract pip install opencv span class token operator span python pip
  • openwrt无线中继

    openwrt无线中继录标题 1 命令行输入aps查看所要连接的ap上级路由 2 cd etc config vi wireless 按照自己所要连接的wifi的参数完成以下配置更改 xff1a option channel 8 上级路由信
  • snprintf函数的用法详解

    c语言的snprintf函数的用法详解 snprintf 函数是一种格式化函数 xff0c 用于将格式化的字符串存储到一个字符数组中 xff0c 并且有一个参数用来限制输出的最大字符数 语法 xff1a int snprintf char
  • JDK、JRE实用安装教程

    JDK与JRE的介绍 JDK xff08 Java Development Kit xff09 称为Java开发包或Java开发工具 xff0c 是一个编写Java的Applet小程序和应用程序的程序开发环境 JDK是整个Java的核心 x
  • Python3实用安装教程

    Python3 python3即Python3 0版本 xff0c 常被称为Python 3000 xff0c 或简称Py3k 相对于Python的早期版本 xff0c 这是一个较大的升级 python3 于 2008 年发布 xff0c
  • json_tuple函数 的利用

    首先在Hive 中查看json tuple 函数的详细信息 desc function extended json tuple 出现解释 xff1a json tuple jsonStr p1 p2 pn like get json obj
  • C语言函数调用参数类型不匹配

    C语言在调用函数时的形参与实参类型不匹配是C语言传统上最大的漏洞 函数调用时实参与形参类型应当保持一致 如果不一致 xff0c 编译器可能会给出相应的Warning xff0c 程序还是可以执行 因为编译器会进行隐含的转换 xff0c 转换
  • 【(Kubernetes)1.26.3+containerd/1.20.x + docker:container runtime is not running问题详细排查】

    一篇很细的排错记录 x1f4dd xff0c 排错排了整整一天的经验 x1f62d 目录 环境 xff1a 报错信息 xff1a 错误分析 xff1a 解决 xff1a etc containerd config toml 一般到这里就解决
  • css动画-3d旋转盒子

    css动画 3d旋转盒子 效果图 xff1a 思路 xff1a 1 一个容器 xff0c 装6个子容器放6张图 xff08 我是采用的ul列表 xff09 lt ul class 61 span class token string 34
  • (已解决)STM32报错Error: L6218E: Undefined symbol assert_param (referred from misc.o).

    今天在学习搭建固件库时遇到了一个问题 xff0c 32在编译的时候会报Error L6218E Undefined symbol assert param referred from misc o 的错误 xff0c 上网查了一下发现没有很
  • vs2017:warning : 无法找到 v142 的生成工具。安装 v142 可使用 v142 生成工具进行生成。

    我使用的是vs2017 xff0c 同伴的是vs2019 xff0c 他发送了他写的项目给我 xff0c 因为使用的vs版本不同 工具集不同 xff0c 导致项目在我的电脑上编译会有如下报错 xff1a warning 无法找到 v142
  • 磁盘冗余整列(RAID)

    1 什么是RAIDRAID Redundant Array of IndependentDisk 独立冗余磁盘阵列 RAID就是一种由多块廉价磁盘构成的冗余阵列 xff0c 在操作系统下是作为一个独立的大型存储设备出现 RAID可以充分发
  • 分布式虚拟交换机(VDS)

    1 和普通交换机的相同之处 xff08 1 xff09 都是为VM xff0c 管理流量 xff0c Vmkernel等提供链接的 xff08 2 xff09 都是要使用物理网卡来关联 xff0c 实现Uplink链路 xff08 3 xf
  • 网络基础整理

    网络基础整理 文章目录 网络基础整理1 osl七层模型 xff08 7 xff09 应用层 xff08 协议数据单元PDU xff09 xff08 6 xff09 表示层 xff08 5 xff09 会话层 xff08 4 xff09 传输
  • 以太网和交换机

    以太网和交换机 文章目录 以太网和交换机1 以太网MAC地址作用 xff1a 组成 xff1a 2 以太网数据帧组成 xff1a 3 交换机工作原理 xff1a 转发原理 xff1a 以太网接口工作模式 xff1a 命令行层次关系 4 以太
  • vSAN基础配置

    1 至少要两块盘且为SSD 43 HDD的配置HDD用于容量储存 SSD用于读写缓存2 在 RAID 卡选择上 xff0c 建议使用支持直通模式 xff08 Pass Through xff09 的 RAID 卡 在这种模式下更换硬盘 新增
  • 【4】Gomodule依赖管理

    go module是Go1 11版本之后官方推出的版本管理工具 xff0c 且从Go1 13版本开始Go module作为Go语言默认的以来管理工具 GOMODULE 要想使用GOMODULE首先要设置环境变量GOMODILE 通过它来实现