2 23 Go之go mod包依賴管理工具使用詳解

2022-09-27 12:33:11 字數 2087 閱讀 4892

go語言預設的依賴管理工具

設定gomodule

windows下設定:

set go111module = on 或者 set go111module = auto

macos或者linux下設定:

export go111module = on 或者 export go111module = auto

go mod命令

命令作用

go mod download

go mod edit

編輯 go.mod 檔案

go mod graph

列印模組依賴圖

go mod init

初始化當前資料夾,建立 go.mod 檔案

go mod tidy

增加缺少的包,刪除無用的包

go mod vendor

將依賴複製到 vendor 目錄下

go mod verify

校驗依賴

go mod why

解釋為什麼需要依賴

proxy**伺服器。國內有防火牆存在,所以有些第三方包無法通過go get獲取。所以需要設定goproxy通過中間**商獲取到相應的資源。

目前公開的**伺服器:

windows下設定:

go env -w goproxy= // 網域名稱

macos或者linux下設定:

export goproxy=

執行go get

go get [包名]@[版本號]命令中版本號可以是 x.y.z 的形式,例如 go get [email protected],也可以是 git 上的分支或 tag,例如 go get foo@master,還可以是 git 提交時的雜湊值,例如 go get foo@e3702bed2。

使用goland新建專案會初始化乙個go.mod檔案。go.mod檔案一旦建立後,它的內容將會被go toolchain全面掌控,go toolchain會在各類命令執行時,比如go getgo buildgo mod等修改和維護go.mod檔案。

go.mod提供了modulerequirereplaceexclude四個命令:

公升級依賴:

使用命令go list -m -u all來檢查可以公升級的 package,使用go get -u need-upgrade-package公升級後會將新的依賴版本更新到go.mod *也可以使用go get -u公升級所有依賴

modules可以通過在go.mod檔案中使用replace指令替換成github上對應的庫

Go 包依賴管理工具 govendor

govendor 是乙個基於vendor機制實現的 go 包依賴管理命令列工具。與原生 vendor 無侵入性融合,也支援從其他依賴管理工具遷移,可以很方便的實現同乙個包在不同專案中不同版本 以及無相互侵入的開發和管理。最開始的時候,go 並沒有提供較為妥當的包管理工具。從 1.5 版本開始提供了 ...

Go 包依賴管理工具 govendor

govendor 是乙個基於 vendor 機制實現的 go 包依賴管理命令列工具。與原生 vendor 無侵入性融合,也支援從其他依賴管理工具遷移,可以很方便的實現同乙個包在不同專案中不同版本 以及無相互侵入的開發和管理。vendor 特性 最開始的時候,go 並沒有提供較為妥當的包管理工具。從 ...

Go依賴管理工具(三)govendor

安裝方法 go get u github.com kardianos govendor用法 govendor init 初始化 vendor 目錄,生成乙個初始化的vendor.json govendor add local 加本專案中用到的dependency加到vendor.json裡面 gov...