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


总结


目录
相关文章
|
7月前
|
搜索推荐 Go 开发者
Go模块与依赖管理:构建稳定、可维护的项目生态
【2月更文挑战第9天】Go模块是Go语言从1.11版本开始引入的一个新的依赖管理工具,它改变了以往通过GOPATH管理项目依赖的方式,为Go开发者带来了更加灵活、高效的依赖管理方式。本文将深入探讨Go模块与依赖管理的概念、使用方法和最佳实践,帮助读者更好地理解和应用Go模块,构建稳定、可维护的项目生态。
|
JSON Go 数据处理
使用Go模块进行依赖管理
摘要:本文将介绍Go语言中的模块(module)概念,以及如何使用Go模块进行依赖管理。我们会探讨模块的基本概念、使用方法、配置和依赖关系管理等方面的内容。
|
4月前
|
Go API 开发工具
Go etcd 的依赖问题终于解决了。。。
Go etcd 的依赖问题终于解决了。。。
|
23天前
|
存储 安全 Go
Go 语言以其高效的并发编程能力著称,主要依赖于 goroutines 和 channels 两大核心机制
Go 语言以其高效的并发编程能力著称,主要依赖于 goroutines 和 channels 两大核心机制。本文介绍了这两者的概念、用法及如何结合使用,实现任务的高效并发执行与数据的安全传递,强调了并发编程中的注意事项,旨在帮助开发者更好地掌握 Go 语言的并发编程技巧。
30 2
|
5月前
|
存储 Linux Go
GO 项目依赖管理:go module总结
GO 项目依赖管理:go module总结
87 0
|
4月前
|
人工智能 IDE Go
go mod 依赖管理
go mod 依赖管理
40 1
|
4月前
|
安全 Go 开发者
掌握 Go 语言的依赖关系管理
【8月更文挑战第31天】
49 0
|
6月前
|
存储 缓存 JSON
Go Modules:Go语言依赖管理的新篇章
Go Modules是Go 1.11引入的依赖管理标准,解决`GOPATH`的依赖冲突问题。
108 1
|
7月前
|
存储 Go
Golang深入浅出之-Go语言依赖管理:GOPATH与Go Modules
【4月更文挑战第27天】Go语言依赖管理从`GOPATH`进化到Go Modules。`GOPATH`时代,项目结构混乱,可通过设置多个工作空间管理。Go Modules自Go 1.11起提供更现代的管理方式,通过`go.mod`文件控制依赖。常见问题包括忘记更新`go.mod`、处理本地依赖和模块私有化,可使用`go mod tidy`、`replace`语句和`go mod vendor`解决。理解并掌握Go Modules对现代Go开发至关重要。
139 2
|
7月前
|
数据建模 Go vr&ar
idea配置go依赖下载
idea配置go依赖下载
175 0