Golang的包管理經(jīng)過了多種工具的演變,從go vendor凭戴,到godep
)佩抹,再到dep。
這里使用的是從go v1.11開始支持的go Modules帖世。
Go Modules具有一些優(yōu)點:
- 不必須將項目目錄放在GOPATH中
- 不使用vendor目錄休蟹,而是統(tǒng)一安裝到
$GOPATH/pkg/mod/cache
- build/run時,自動析出項目import的包并安裝
使用方法:
初始化
在已有的項目目錄中,使用go mod init <包名>
初始化赂弓。
包名通常類似github.com/golang/dep
這種格式绑榴。
如果包內(nèi)有自引用,則包名需要和包內(nèi)自引用名相同盈魁,才能正常導入翔怎。
這時項目中生成一個go.mod
文件。build/run
直接執(zhí)行go build/run
备埃,會發(fā)現(xiàn)項目涉及的包被自動安裝了姓惑。
這時項目中新增go.sum
文件。原來的go.mod
中增加了依賴項按脚。
注意:
國內(nèi)使用時于毙,golang.org/x/crypto
等包可能裝不上。
可以設(shè)置Go Module Proxy解決:
export GOPROXY="https://athens.azurefd.net"
(這里使用了微軟提供的代理)
示例
通過這種方式辅搬,很容易運行起來一個互聯(lián)網(wǎng)上的Go項目唯沮。比如:
git clone https://github.com/snowlyg/IrisApiProject.git
cd IrisApiProject/
go mod init IrisApiProject
go build .
./IrisYouQiKangApi.exe~
其它
有些庫使用了cgo,需要gcc編譯器堪遂。
如果是在windows下介蛉,需要自行安裝gcc。注意溶褪,golang只支持mingw币旧,不能使用cygwin。
對于x64 windows:
- 下載mingw-w64
- 安裝之猿妈。注意選擇 Architecture=x86_64, Threads=posix, Exception=seh吹菱。
- 配置安裝目錄下的bin目錄到環(huán)境變量。