go-mod
go module是Go1.11版本之后官方推出的版本管理工具,並且從Go1.13版本開始,go module將是Go語言默認的依賴管理工具
要啟用go module支持首先要設置環境變量GO111MODULE,通過它可以開啟或關閉模塊支持,它有三個可選值:off、on、auto,默認值是auto。
GO111MODULE=off禁用模塊支持,編譯時會從GOPATH和vendor文件夾中查找包。
GO111MODULE=on啟用模塊支持,編譯時會忽略GOPATH和vendor文件夾,只根據 go.mod下載依賴。
GO111MODULE=auto,當項目在$GOPATH/src外且項目根目錄有go.mod文件時,開啟模塊支持。
# 啟用 Go Modules 功能
export GO111MODULE=on
常用的go mod命令如下:
go mod download 下載依賴的module到本地cache(默認為$GOPATH/pkg/mod目錄)
go mod edit 編輯go.mod文件
go mod graph 打印模塊依賴圖
go mod init 初始化當前文件夾, 創建go.mod文件
go mod tidy 增加缺少的module,刪除無用的module
go mod vendor 將依賴復制到vendor下
go mod verify 校驗依賴
go mod why 解釋為什么需要依賴
Go Vendor
安裝go get -u github.com/kardianos/govendor
基礎命令
govendor init # 創建vendor目錄,創建vendor.json文件
govendor add +external #生成依賴包
govendor update +vendor # 更新vendor的包命令
init 初始化 vendor 目錄
list 列出所有的依賴包
add 添加包到 vendor 目錄,如 govendor add +external 添加所有外部包
add PKG_PATH 添加指定的依賴包到 vendor 目錄
update 從 $GOPATH 更新依賴包到 vendor 目錄
remove 從 vendor 管理中刪除依賴
status 列出所有缺失、過期和修改過的包
fetch 添加或更新包到本地 vendor 目錄
sync 本地存在 vendor.json 時候拉去依賴包,匹配所記錄的版本
get 類似 go get 目錄,拉取依賴包到 vendor 目錄