当前位置: 首页 > news >正文

第十章 go mod操作

参考博客:

https://blog.csdn.net/weixin_39611043/article/details/110133365

https://www.cnblogs.com/niuben/p/12560104.html

常用命令:

// 初始化项目
go mod init test(test为项目名)// tidy会检测该文件夹目录下所有引入的依赖,写入 go.mod 文件
go mod tidy// 下载项目依赖,拿到新项目执行即可
go mod download// 将GOPATH 下的依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下
go mod vendor
// 如果GO111MODULE=on,模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找。会优先使用mod下的包【不会使用vendor下的包】
// 如果GO111MODULE=off,无模块支持,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。使用顺序如下
// 1)优先使用vendor目录下面的包
// 2)如果vendor下面没有搜索到,再搜索$GOPATH/src下面的包
// 3)如果$GOPATH下面没有搜索到,那么搜索$GOROOT/src下面的包
// 如果GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
//1)当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
//2)当前文件在包含go.mod文件的目录下面。
// 在使用go modules时,GOPATH是无意义的,不过它还是会把下载的依赖存储在$GOPATH/pkg/mod 中,也会把go install 的结果放在 $GOPATH/bin 中。// go get下载
go get github.com/xxx/xxx  // 添加依赖
go get github.com/xxx/xxx@v1.6.2  // 添加指定版本
go get github.com/xxxx/xxx@'<v1.6.2'  // 添加指定版本范围
go get github.com/xxxx/xxx@q2516faf3  // 添加指定commit的版本// 新的项目,如果想要使用之前的包,只需要记住之前包的版本,使用go get 执行包版本下载即可,会自动将信息写入go.mod文件中
// -u 用于下载指定的路径包及其依赖包,默认情况下,不会下载本地已经存在的,只会下载本地不存在的代码包
go get -u github.com/astaxie/beego@v2.0.1 // 校验依赖
go mod verify  // 生成go.sum文件
// windows修改GO111MODULE
go env -w GO111MODULE=off  // 长期修改
set GO111MODULE=on  // 仅修改y

go Moudle常见错误

  1. 使用go get -u github.com/astaxie/beego@v2.0.1,提示invalid version: unknown revision v2.0.1

别人项目

  1. 项目代码,具体的文件中直接 import 包,拿到项目自己生成go.mod文件,下载需要的包就行。【go mod开启】
  2. 项目代码中含有vendor文件夹。【不考虑这种,vscode不行】

自己项目

需要使用别人包时,使用go get即可。【go mod开启】

相关文章:

  • 【Java SE】Collections类详解
  • 2.1 腾讯校招通关指南-算法与数据结构
  • trl的安装与单GPU多GPU测试
  • 一文读懂WPF系列之依赖属性与附加属性
  • C++进阶——C++11_智能指针
  • 架构思维:缓存层场景实战_读缓存(下)
  • 【已更新完毕】2025泰迪杯数据挖掘竞赛C题数学建模思路代码文章教学:竞赛智能客服机器人构建
  • 如何高效使用 Text to SQL 提升数据分析效率?四个关键应用场景解析
  • Token安全存储的几种方式
  • Docker 搭建 RabbitMQ
  • 我的机器学习之路(初稿)
  • Django之modelform使用
  • ORACLE数据库转国产阿里OceanBase数据库
  • 【版本控制】git命令使用大全
  • display: flex,导致子dom宽高失效
  • Upwork数据战争:用爬虫与AI预测垄断订单
  • uniapp小程序位置授权弹框与隐私协议耦合(合而为一)(只在真机上有用,模拟器会分开弹 )
  • 单例模式-3-双检锁/双重校验锁(DCL,即 double-checked locking)
  • Spark-SQL核心编程语言
  • 详解@JsonFormat和@DateTimeFormat注解:处理日期格式化的利器
  • “三德子”赵亮直播间卖“德子土鸡”,外包装商标实为“德子土”
  • 中国以“大幅开放市场”回应贸易保护主义
  • 美联储主席:美联储工作方式不会受特朗普影响,从未寻求与总统会面
  • 马上评|不再提“智驾”,新能源车企回归理性
  • 央行行长详解降准:将释放长期流动性1万亿,整体存款准备金率平均水平降至6.2%
  • 关税风暴下,3G资本拟94亿美元私有化美国鞋履巨头斯凯奇,溢价30%