golang module

一、使用手册

1. 使用方法:

go mod <command> [arguments]

2. 具体命令

download: download modules to local cache(下载依赖包)
edit: edit go.mod from tools or scripts(编辑 go.mod)
graph: print module requirement graph(打印模块依赖图)
init: initialize new module in current directory(在当前目录初始化 mod)
tidy: add missing and remove unused modules(拉取缺少的模块,移除不用的模块)
vendor: make vendored copy of dependencies(将依赖复制到vendor下)
verify: verify dependencies have expected content(验证依赖是否正确)
why: explain why packages or modules are needed(解释为什么需要依赖)

二、使用前准备

1. 终端输入

export GO111MODULE=on

2. GO111MODULE 说明

GO111MODULE 有三个值:offonauto(默认值)

(1)off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找

(2)on,go命令行会使用modules,而一点也不会去GOPATH目录下查找

(3)auto,默认值,go命令行将会根据当前目录来决定是否启用module功能;这种情况下可以分为两种情形:

当前目录在GOPATH/src之外且该目录包含go.mod文件

当前文件在包含go.mod文件的目录下面

三、具体示例

1. 创建一个新项目

(1)在 GOPATH 目录之外新建一个目录,并使用 go mod init 初始化生成 go.mod 文件

$ go mod init test

go: creating new go.mod: module test

$ cat go.mod

module test

go 1.13

(2)go.mod 提供了module, require、replace和exclude 四个命令

module 语句指定包的名字(路径)

require 语句指定的依赖项模块

replace 语句可以替换依赖项模块

exclude 语句可以忽略依赖项模块

2. 添加依赖

# test.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 test.go 运行代码会发现 go mod 会自动查找依赖自动下载

$ cat go.mod
module test
go 1.13
require (
	github.com/labstack/echo v3.3.10+incompatible
	github.com/labstack/gommon v0.3.0 // indirect
	golang.org/x/crypto v0.0.0-20191219195013-becbf705a915 // indirect
)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值