go語言包管理

要構建Go語言的編譯環境,首先得安裝Go語言的編譯工具git

官方路徑:https://golang.google.cn/dl/,通常是訪問不了,使用國內網站:https://studygolang.com/dl
而後須要設置環境變量
在windows下須要將go編譯器的安裝路徑加到Path,還要設置GOROOT和GOPATH變量,分別對應GO安裝目錄和項目下的src目錄。github

GO包管理通常有兩種方式:GOPATH方式和GO Module方式
GOPATH方式是GO原生支持的方式,通常要求項目下包含三個目錄:
bin:放置可執行文件
pkg:放置編譯生成的lib包
src:放置源碼,go編譯查找源文件目錄
例如項目結構以下:golang

 通常源文件的包名就是所在的文件夾名,若是在main函數中要調用algorithms中的qsort中的函數,只須要import文件便可,路徑爲GOPATH/src下的路徑:windows

若是須要導入github上的開源代碼,直接import項目的url連接便可,而且須要go get導入到本地路徑,go會自動在src目錄下生成github.com目錄。函數

Go Module管理方式
Go Module方式是golang1.11新增的特性,直接基於模塊管理,而不是基於固定目錄
要使用Go Module,須要先設置go變量GO111MODULE=on
要注意Go Module方式跟GOPATH方式不兼容,項目路徑不能在GOPATH裏。工具

在項目中不須要src目錄,使用go mod init創建mod管理,會自動在項目下生成go.mod文件,若是須要依賴第三方代碼,除了在項目中import以外,還須要使用go mod download下載包網站

go.mod文件示例:ui

 在項目中引用庫,本地庫必須帶上項目路徑:google

go mod經常使用命令:url

命令

說明

download

download modules to local cache(下載依賴包)

edit

edit go.mod from tools or scripts(編輯go.mod

graph

print module requirement graph (打印模塊依賴圖)

init

initialize new module in current directory(在當前目錄初始化mod)

tidy

add missing and remove unused modules(拉取缺乏的模塊,移除不用的模塊)

vendor

make vendored copy of dependencies(將依賴複製到vendor下)

verify

verify dependencies have expected content (驗證依賴是否正確)

why

explain why packages or modules are needed(解釋爲何須要依賴)

相關文章
相關標籤/搜索