一、设置环境变量
二、启用 go modules 功能 并设置代理
补充:
GO111MODULE
有三个值:on、off、auto
GO111MODULE=off
,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。GO111MODULE=on
,go命令行会使用modules,而一点也不会去GOPATH目录下查找。GO111MODULE=auto
,默认值,go命令行将会根据当前目录来决定是否启用module功能。
modules 功能启用后,依赖包的安装位置在 $GOPATH/pkg 目录下;go mod 提供的命令如下:
三、go mod 命令管理包
- 在 GOPATH 以为的任意路径下新建项目目录,eg:GOPATH目录为 D:GoCode;项目目录为 D:Project/testProject
- 进入项目目录,新建目录 bin、src/main,进入 src 目录;注:此处目录可随意。
- 使用命令:go mod init main,此时生成一个 go.mod 文件;注:go mod init 命令后面也可以跟上文件名称(带后缀)。go.mod文件创建后,它的内容将会被go toolchain全面掌控。go toolchain会在各类命令执行时,比如go get、go build、go mod等修改和维护go.mod文件。
- 进入 main目录,新建 main.go 文件,写入代码:
package main import ( "net/http" "github.com/labstack/echo" ) func main() { e := echo.New() e.GET("/", func(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") }) e.Logger.Fatal(e.Start(":1323")) }
- 使用命令:go run main.go,正常运行的结果如下:
- go module 安装 package 的原则是先拉最新的 release tag,若无tag则拉最新的commit。 go 会自动生成一个 go.sum 文件来记录 dependency tree。go.mod 文件内容如下
go.moudles 的官方介绍:https://github.com/golang/go/wiki/Modules
go.mod 提供了module
, require
、replace
和exclude
四个命令
module
语句指定包的名字(路径)require
语句指定的依赖项模块replace
语句可以替换依赖项模块exclude
语句可以忽略依赖项模块