背景

大多数语言都会有包管理工具,像Node有npm,PHP有composer,Java有Maven和Gradle。

在go1.11 版本中,新增了module管理模块功能,用来管理依赖包

开启module特性

要开始使用 go module 的特性, 需要先设置 GO111MODULE 环境变量。

开启 GO111MODULE

要使用go module,首先要设置GO111MODULE=on

这是因为,默认设置的GO111MODULE=auto, 导致 modules 默认在 GOPATH/src 路径下是不启用的。

如果需要在 GOPATH/src 也能使用modules, 需要把 GO111MODULE 环境变量设置为 on.

export GO111MODULE=on
Goland 中可独立配置,GOPATH GOMOD

使用module

Usage:

	go mod <command> [arguments]

The commands are:

	download    download modules to local cache
	edit        edit go.mod from tools or scripts
	graph       print module requirement graph
	init        initialize new module in current directory
	tidy        add missing and remove unused modules
	vendor      make vendored copy of dependencies
	verify      verify dependencies have expected content
	why         explain why packages or modules are needed

Use "go help mod <command>" for more information about a command.

经常使用

go mod init 

生成 go.mod 文件 例如

require (
	github.com/Tang-RoseChild/mahonia v0.0.0-20131226213531-0eef680515cc
	github.com/Unknwon/com v0.0.0-20190321035513-0fed4efef755 // indirect
	github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575
)
go tidy 

添加需要的删除无用的