SyMind / learning

路漫漫其修远兮,吾将上下而求索。
9 stars 1 forks source link

Go 模块 #64

Open SyMind opened 1 year ago

SyMind commented 1 year ago

介绍

Modules 是 Go 的依赖管理工具。

模块、包和版本

模块由一系列已发布、版本化、被分发的包构成。可以直接从版本控制仓库或模块代理服务器下载模块。

模块由模块路径标识,该路径在 go.mod 文件 中声明,并与模块依赖信息放在一起。模块根目录是指包含 go.mod 文件的目录。主模块是指包含了 go 命令的目录对应的模块。

模块下的每个包都是一系列同目录下、将被编译到一起的文件集合。包路径是模块路径和包含包的子目录(相对于模块根目录的路径)拼起来的结果。比如,模块 "golang.org/x/net" 包含了目录 html 下的包。则这个包路径就是 "golang.org/x/net/html"。

Module 相关的命令

go get

用法:

go get [-d] [-t] [-u] [build flags] [packages]

示例:

# 升级特定模块。
$ go get -d golang.org/x/net

# 升级由主模块中的包导入带来的包的模块。 
$ go get -d -u ./...

# 升级或降级到模块的特定版本。
$ go get -d golang.org/x/text@v0.3.2

# 更新到模块的主分支机构上的提交。
$ go get -d golang.org/x/text@master

# 删除对模块的依赖并降级需要它的模块到不需要它的版本。
$ go get -d golang.org/x/text@none

该 go get 命令更新主模块 go.mod 文件中的模块依赖关系 ,然后构建和安装命令行中列出的包。

go install

用法:

go install [build flags] [packages]

示例:

# 安装一个包的最新版本。
$ go install golang.org/x/tools/gopls@latest

# 安装一个包的特定版本。
$ go install golang.org/x/tools/gopls@v0.6.4

# 安装一个包,会根据当前目录下的 go.mod 选择版本。
$ go install golang.org/x/tools/gopls

# 安装一个目录下的所有包。
$ go install ./cmd/...

go install 命令生成并安装由命令行上的路径命名的包。