去Go语言中文网下载go的安装包:
下载完成之后,一直Next,选择安装路径,Finish!
查看环境变量Path,最后面会自动添加一个*****\Go\bin
的目录,就说明安装没问题了!
go version #查看go版本
参考:GOPATH、GOROOT、GOMOD、彻底搞懂golang的GOROOT和GOPATH、详解GOROOT和GOPATH
这个目录下面也有src, bin, pkg三个文件夹,import内置包的时候,并不需要额外安装,当程序运行时,会先去GOROOT下找相应的包来运行
GOPATH 可以设置多个,其中,第一个将会是默认的包目录,使用 go get 下载的包都会在第一个path中的src目录下,使用 go install时,在哪个GOPATH中找到了这个包,就会在哪个GOPATH下的bin目录生成可执行文件;
go env -w GO111MODULE=auto
,下载下来的第三方库就在GOPATH/pkg/mod
文件夹里面执行go mod init module_name
, 初始化模块,module_name可填可不填,不填的话就是采用项目文件夹的名称,会在项目根目录下生成一个go.mod的文件
假设我要引入github.com/gin-gonic/gin v1.5.0这个包,在go.mod中添加require github.com/gin-gonic/gin v1.5.0
,然后运行go mod download
即可!会生成一个和go.mod同级目录的文件go.sum
,也可以不执行go mod download
而直接运行go build
或者go install
也会自动下载包
如果不想自己修改go.mod,也可以直接用require指定版本,执行go get指令
go get github.com/gin-gonic/gin@v1.6.3
只要有开启gomod功能,go get就不会再把包放在src下的package,而是会放在/pkg/mod
里面,并且mod会写好引入。也就不需要go mod download了
# 这个指令指定了当前模块的导入路径为 example.com/myproject
module example.com/myproject
# 指定项目依赖的两个模块 example.com/dependency 和 example.com/anotherdependency,分别需要的版本为 v1.2.3 和 v2.0.1
require (
example.com/dependency v1.2.3
example.com/anotherdependency v2.0.1
)
# 将依赖模块 example.com/dependency 的导入路径替换为本地路径 ../my/local/dependency
replace example.com/dependency => ../my/local/dependency
# 指定排除依赖模块 example.com/dependency 的版本 v1.2.3
exclude example.com/dependency v1.2.3
go mod
命令详解go mod download
:下载项目中的所有依赖包。它会检查 go.mod 文件并下载缺失的依赖项。go mod edit
:用于编辑 go.mod 文件,可以添加、移除或更新依赖项。例如,可以使用 go mod edit -require [package]@[version]
来添加指定版本的依赖项。go mod graph
:生成一个文本表示的模块依赖关系图。如果想要可视化的模块依赖关系图,你可以使用第三方工具,如:Graphviz 。go mod init
:在当前目录初始化一个新的模块,并指定模块路径。这个命令会生成一个新的 go.mod 文件。go mod tidy
:清理项目中未使用的依赖项。它会根据项目代码的实际使用情况来更新 go.mod 文件,并移除不再需要的依赖项。go mod vendor
:将依赖项复制到项目的 vendor 目录中,以便离线使用。这个命令会创建 vendor 目录并将所有依赖项复制到该目录下。go mod verify
:验证项目的依赖项的完整性。它会检查依赖项的哈希值,确保其内容没有被篡改。go mod why
:查询某个依赖项被引入的原因。可以使用 go mod why [package] 来查找指定包的引入原因。一些其他相关命令:
go get -u [package]
:更新依赖。该命令用于更新指定的依赖包到最新版本。go get [package]
:添加依赖。该命令用于添加指定的包作为依赖,并自动更新 go.mod 文件和下载依赖包。go list -m all
:查看依赖。该命令用于查看当前模块的所有依赖关系。# 设置`GOPROXY`的值为`https://goproxy.cn,direct`(不能设置操作系统环境变量)
go env -w GOPROXY=https://goproxy.cn,direct
# 将`GOPROXY`恢复为默认值
go env -u GOPROXY