GoModules使用
date
Apr 26, 2023
slug
gomoduse
status
Published
tags
Golang
summary
type
Post
Modules官方定义为:
模块是相关Go包的集合,modules是源代码交换和版本控制的单元,go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
Go Mod命令
- go mod init:初始化go mod,生成go.mod文件,后可接参数指定 module 名,上面已经演示过。
- go mod download:手动触发下载依赖包到本地cache(默认为$GOPATH/pkg/mod目录)
- go list -m -json all:以 json 的方式打印依赖详情
- go mod graph: 打印项目的模块依赖结构
- go mod tidy :添加缺少的包,且删除无用的包
- go mod verify :校验模块是否被篡改过
- go mod why: 查看为什么需要依赖
- go mod vendor :导出项目所有依赖到vendor下
- go mod edit :编辑go.mod文件
加粗为常用命令。
go.mod
执行
go mod init xxx
后会创建一个go.mod文件,该文件内容将会被go toolchain全面掌控。go toolchain会在各类命令执行时,比如go get、go build、go mod等修改和维护go.mod文件。go.mod文件提供了下面四个命令:
module
指定包的名字
require
指定的依赖项,预设是最新版,可以指定版本号
replace
语句可以替换依赖项
exclude
语句可以忽略依赖项
参考资料: