Go Module 使用
Go Module
是官方用來管理 package
依賴的工具, 1.11
新加的, 使用時(shí)需要設(shè)置變量: GO111MODULE=on
.
go mod help
可以查看其幫助文檔:
$ go help mod
Go mod provides access to operations on modules.
Note that support for modules is built into all the go commands,
not just 'go mod'. For example, day-to-day adding, removing, upgrading,
and downgrading of dependencies should be done using 'go get'.
See 'go help modules' for an overview of module functionality.
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
要求項(xiàng)目必須在 GOPATH
中, 所以在這個(gè)例子中設(shè)置為當(dāng)前目錄(~/GoLang
) export GOPATH=$PWD
, 然后在 src
下創(chuàng)建項(xiàng)目 test
, 目錄結(jié)構(gòu)如下:
GoLang
└── src
└── test
└── main.go
示例的代碼請(qǐng)見: GoModule
初始化
進(jìn)入 test
所在目錄, 執(zhí)行 go mod init
即可完成初始化, 會(huì)多出一個(gè)文件: go.mod
.
記錄依賴
執(zhí)行 go get ./
即會(huì)開始查找依賴并下載記錄到 go.mod
文件中.
go mod
會(huì)將依賴下載到 $GOPATH/pkg
下, 用來當(dāng)作緩存, 可以在多個(gè)項(xiàng)目之間共享.
依賴變更及 vendor
如在項(xiàng)目的開發(fā)過程中, 依賴有變更, 可使用 go mod tidy
來應(yīng)用這些變更到 go.mod
文件.
在項(xiàng)目發(fā)布時(shí)會(huì)要將依賴復(fù)制到項(xiàng)目中, 此時(shí)使用 go mod vendor
即可完成此操作.
到此就介紹完了 go mod
的用法, 其他的子命令用法請(qǐng)查看幫助文檔.
最后在說下需要注意的地方:
- 項(xiàng)目必須要在
GOPATH
中 - 需要設(shè)置
GO111MODULE=on
變量