3.go-mod依赖管理

这篇具有很好参考价值的文章主要介绍了3.go-mod依赖管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

提示:文章写的差不多的时候补上



前言

go 语言项目中对于第三方库和插件采用go mod 的方式管理go 工程依赖的包。


一、go mod 文件介绍

# 指定模块名
module godemobuild(模块名字,工程名)

# go  sdk 版本
go 1.19

// 当前module(项目)依赖的包
require (    
    // 依赖包   版本    
    //dependency latest
)


// 排除第三方包。
exclude (
    //排除依赖包名字   版本
    dependency      latest
)

//替换
// 第三方库下载路径的替换
// 修改依赖包的路径或版本
// 1. 依赖包发生迁移
// 2. 原始包无法访问(需要代理)
// 3.使用本地包替换原始包(重写了第三方库,需要本地包)

replace (     
    //源路径 版本  替换 目标的版本     
    source latest => target latest
)


// 撤回
// 当前项目作为其它项目的依赖的时候;如果某个版本出现问题,撤回该版本。

retract (     
    //版本号     
    v1.0.0
  )

二、go mod 常用命令

1.常用命令总结

命令如下(示例):

#1. 将模块下载到本地缓存,需要指定模块路径及版本号
// 本地缓存位置 GOPATH=E:\GOwork\path\pkg
go  mod  download

# 例如  下载当前包不会下载相关的依赖
go mod download github.com/gin-gonic/gin@v1.9.0


# 2. 初始化一个新的模块到当前目录
go mod init

# 例如
go  mod init gomodcase

# 3. 添加缺少的依赖,删除未使用的依赖
go  mod tidy

# 4. 通过工具或脚本编辑go.mod
go mod edit
# 例如
# 添加依赖
go mod edit -require="github.com/tin-gonic/gin@v1.90"

# 替换路径,old[@version] 替换成 new[@version]
go mod edit -replace="golang.org/x/crypto@v0.0.0=github.com/golang/crypto@latest"

# 排除第三方依赖的某个版本

go mod edit -exclude="github.com/gin-gonic/gin@v1.9.0"

# 当前项目作为其他项目的依赖时,添加撤回版本用于排除有问题的版本
go mod edit -retract="v1.0.0"
go mod edit -retract="v1.1.0"

# 删除撤回版本记录
go mod edit -dropretract="v1.0.0"

# 根据go.mod 中的依赖制作vendor副本
# 有了vendor 副本,项目将不在依赖本地缓存

go mod vendor

# 验证依赖是否正确
go mod verify

# 返回对指定模块的依赖关系最短路径,解释为生命依赖指定包
go mod why 
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.go mod 中最常用命令

代码如下(示例):

go  mod tidy
比如下载里一个新的项目使用该命令就会把响应的依赖全部下载下来

# 初始化一个新的模块到当前目录
go mod init

3. 常用命令

# go install 安装可执行插件
#例如
    go install github.com/google/gops@latest
    
 # go get 获取模块信息并更新go.mod文件
 # 若本地缓存没有该模块,则下载模块; 若有则直接引用
 # 例如
 go get github.com/gin-gonic/gin@v1.9.0
 
 # go get -u 更新模块依赖,并更新go.mod
 go get github.com/jgin-gonic/gin@v1.9.0
 
 # go clean 清理临时目录中的文件
 # 例如 : 清理整个module 下载的缓存文件
 go clean -modcache

总结

文章来源地址https://www.toymoban.com/news/detail-678568.html

到了这里,关于3.go-mod依赖管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • go mod tidy总是安装最新依赖,如何查找哪个模块导致某个包安装最新依赖,提供一个小工具

    安装: go install github.com/jan-bar/interesting/findModVer@latest 执行: findModVer d:myproject 结果如下图所示: 根据结果可以找到哪个依赖导致 google.golang.org/grpc v1.45.0 使用了这个版本,这样每次执行 go mod tidy 会自动修改该模块到 v1.45.0 版本。我看了下 github.com/spf13/viper v1.11.0 就是用的 go

    2024年02月08日
    浏览(58)
  • 【GO语言依赖】Go语言依赖管理简述

    在运行环境中,遭遇报错,显示找不到函数 经过研究后发现需要进行依赖管理,进行如下操作后解决: 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,就需

    2024年01月16日
    浏览(43)
  • 【Go】依赖包管理

    2024年01月24日
    浏览(53)
  • Go语言之依赖管理

    go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。 GO111MODULE 要启用go module支持首先要设置环境变量GO111MODULE 通过它可以开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是auto。 GO111MODULE=off禁用模块支

    2024年02月12日
    浏览(40)
  • go基础-依赖管理

    有些不可思议,简洁、优雅的go语言依赖管理如此混乱,发布多年也没有可靠的依赖管理机制,官方先后推出了多种依赖管理机制gopath、vendor、dep等,没有一个顺手,直到在Go 1.11推出go mod才有所缓解,也谈不上优秀,相比maven弱爆了。 主流语言都有官方依赖包站点,如maven、

    2024年02月15日
    浏览(43)
  • 使用Go模块进行依赖管理

    摘要:本文将介绍Go语言中的模块(module)概念,以及如何使用Go模块进行依赖管理。我们会探讨模块的基本概念、使用方法、配置和依赖关系管理等方面的内容。 Go语言自2007年发布以来,一直以其简洁、高效和强大的网络编程能力而受到开发者的喜爱。然而,随着项目规模

    2024年02月08日
    浏览(69)
  • Go 语言进阶与依赖管理 | 青训营

    Powered by: NEFU AB-IN GO语言工程实践课后作业:实现思路、代码以及路径记录 Go可以充分发挥多核优势,高效运行 Goroutine 是Go语言中的 协程 ,一种 轻量级的线程 ,由Go语言的运行时管理,可以实现高并发的程序设计,由于轻量级的特性,goroutine可以创建成千上万个,而且消耗

    2024年02月11日
    浏览(41)
  • Go 语言并发编程 及 进阶与依赖管理

    协程可以理解为 轻量级线程 ; Go更适 合高并发场景原因 之一: Go语言 一次可以创建上万协成 ; “快速”: 开多个协成 打印。 go func() : 在 函数前加 go 代表 创建协程 ; time.Sleep() : 协程阻塞,使主协程 在 子协程结束前阻塞不退出 ; 乱序输出 说明并行 ; 通过通信共享内

    2024年02月13日
    浏览(52)
  • 使用go mod tidy命令出现go.mod file indicates go 1.21, but maximum supported version is 1.19,如何解决

    使用git拉取代码Golang代码到本地后,利用VS Code打开项目后,看到go.mod报红,现象如下图所示:` 这个问题是当前使用的go版本与git clone拉取下来的项目的go.mod所用的go版本不一致导致的: 在项目中打开一个terminal,查看当前安装的go版本是否与go.mod的第二行的声明一致:如下图

    2024年02月06日
    浏览(42)
  • go mod vendor简明介绍

    Go 语言在 go 1.6 版本以后编译 go 代码会优先从 vendor 目录先寻找依赖包,它具有以下优点: 复制依赖 :go mod vendor 会把程序所依赖的所有包复制到项目目录下的vendor 文件夹中,所以即使这些依赖包在外部源(如 GitHub)中被删除或者更改,项目仍然可以稳定运行。 提升构建速

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包