说明: golang版本必须是v1.11
准备
操作
在你的项目文件夹下,运行下面命令,之后,会生成go.mod文件
# awesomeProject 可以省略,也可以自定义。省略时,默认为文件夹名,即项目名。
go mod init awesomeProject
运行上面命令后,看到如下提示:
go: creating new go.mod: module awesomeProject
go: to add module requirements and sums:
go mod tidy
如果,我们省略命令中的module名awesomeProject部分,则不会出现上面的提示。关于go mod tidy命令,我们之后再说,这里先无视。
现在,可以看到文件夹下,出现了自动生成的go.mod文件,默认内容如下:
module awesomeProject
go 1.16
go.mod文件一旦创建后,它的内容将会被go toolchain全面掌控。go toolchain会在各类命令执行时,比如go get、go build、go mod等修改和维护go.mod文件。
go.mod 提供了module, require、replace和exclude 四个命令
- module 语句指定包的名字(路径)
- require 语句指定的依赖项模块
- replace 语句可以替换依赖项模块
- exclude 语句可以忽略依赖项模块
修改配置
因为网络环境不同,国内貌似还需要配置代理。
# 例子:开启Go Moudles模式的命令
go env -w GO111MODULE=on
GO111MODULE | 意义 |
---|---|
on | go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。 |
off | go命令行会使用modules,而一点也不会去GOPATH/src目录下查找。 (pkg 包都存放在 $GOPATH/pkg 下) |
auto | 默认值,go命令行将会根据当前目录来决定是否启用module功能。(pkg 包都存放在 $GOPATH/pkg 下) |
修改后,我们再通过go env命令查看当前配置,如下:
GO111MODULE="on"
GOARCH="amd64"
// ...省略
GO111MODULE=“on”,意味着,我们已经开启了Go Moudles模式,可以自动下载安装依赖了。
利用Go Moudles安装库
STEP1: 新建一个文件,命名为main.go
STEP2: main.go的内容如下:
package main
import (
"fmt"
"rsc.io/quote"
)
func main() {
fmt.Println(quote.Hello())
}
STEP3: 执行命令go run main.go