前言
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
总结
略