当前位置: 首页 > 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开启】

http://www.dtcms.com/a/133649.html

相关文章:

  • 【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注解:处理日期格式化的利器
  • Bright+Data网页解锁器在旅游行业的创新实践
  • 【深入C++多态:基于消息解析器的设计、实现与剖析】
  • T4P: Test-Time Training of Trajectory Prediction
  • 回溯算法:List 还是 ArrayList?一个深拷贝引发的思考
  • Jenkins 代理自动化-dotnet程序
  • 配置HADOOP_HOME环境变量和maven_HOME环境变量
  • 线代第二章矩阵第二课:矩阵的加法、减法、数乘
  • Python+Playwright:编写自动化测试的避坑策略
  • Mac系统升级node.js版本和npm版本并安装pnpm
  • Node.js Session 原理简单介绍 + 示例代码