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


总结


目录
相关文章
|
2月前
|
搜索推荐 Go 开发者
Go模块与依赖管理:构建稳定、可维护的项目生态
【2月更文挑战第9天】Go模块是Go语言从1.11版本开始引入的一个新的依赖管理工具,它改变了以往通过GOPATH管理项目依赖的方式,为Go开发者带来了更加灵活、高效的依赖管理方式。本文将深入探讨Go模块与依赖管理的概念、使用方法和最佳实践,帮助读者更好地理解和应用Go模块,构建稳定、可维护的项目生态。
|
5月前
|
JSON Go 数据处理
使用Go模块进行依赖管理
摘要:本文将介绍Go语言中的模块(module)概念,以及如何使用Go模块进行依赖管理。我们会探讨模块的基本概念、使用方法、配置和依赖关系管理等方面的内容。
|
28天前
|
数据建模 Go vr&ar
idea配置go依赖下载
idea配置go依赖下载
16 0
|
3月前
|
JSON 缓存 JavaScript
Go语言依赖管理的核心 - go.mod文件解析
Go语言依赖管理的核心 - go.mod文件解析
81 0
|
6月前
|
缓存 Go
Go语言依赖管理和工程结构完全攻略
Go语言依赖管理和工程结构完全攻略
23 0
|
10月前
|
存储 Go 开发工具
Go语言的依赖管理 | 青训营笔记
Go语言的依赖管理 | 青训营笔记
107 1
go使用etcd依赖频频报错解决
go使用etcd依赖频频报错解决
|
前端开发 Go
【Go】Go语言学习笔记--Go依赖管理
为什么需要依赖管理 早期,Go所依赖的三方库都在GOPATH这个目录下面,这就导致同一个三方库职能保存一个版本,如果不同项目依赖不同版本的三方库,怎么解决?
194 3
go语言module,依赖管理方法
1.为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具
150 0
go语言module,依赖管理方法
|
Go 开发工具
Go1.13:使用go mod 管理依赖, 提示cannot find module providing package或cannot find main module
Go1.13:使用go mod 管理依赖, 提示cannot find module providing package或cannot find main module
552 0
Go1.13:使用go mod 管理依赖, 提示cannot find module providing package或cannot find main module