安裝
配置環境
啟用Go Modules
go mod
在Go >= 1.13
才默認啟用,在Go >= 1.11
已經開始支持了go mod
。
設置環境變量
# 啟用go module
export GO111MODULE=on
# 設置GOPATH,開啟go mod之后,這個目錄主要用來存放依賴包
export GOPATH=~/go_modules
# 設置go代理,在運行go test/build等時會自動下載依賴
# 使用go get下載依賴需要在GOPATH中執行才會使用代理
export GOPROXY=https://goproxy.io
go mod使用
在$GOPATH/src
之外的任意目錄創建一個目錄,
mkdir -p /home/gopher/project
cd /home/gopher/project
這個目錄就是你項目的根目錄,在目錄中創建mod管理文件
go mod init project
如果你這個項目是放在github上的,那么在創建文件的時候可以這樣寫,project為你github項目名稱
go mod init github.com/YourName/project
go.mod
的初始內容cat go.mod
為:
module project
go 1.12
go.mod
只需要在項目的根目錄創建一次即可,在項目中Go
會自動查找當前目錄的全部父級目錄
,直到找到go.mod
。
關於包的定義和自定義包的導入
-
一個目錄下只能由一個定義的package
比如在project項目中有了一個hello.go的文件,文中定義了package hello, 這樣,當你再在project中創建了一個world.go的文件,其中定義了package world會報錯,無法加載package
-
每個package定義,位於一個目錄中。推薦目錄名和package定義的包名字相同。
project ├── go.mod ├── hello │ ├── hello.go │ └── hello1.go ├── main.go └── world ├── world.go └── world1.go 其中hello目錄中所有文件的包定義均為package hello,hello目錄中所有文件的包定義均為package world
go mod管理
-
創建新的模塊
# 創建了一個新的模塊,初始化 `go.mod` 文件並且生成相應的描述 go mod init
-
添加依賴項
# build,test和其它構建代碼包的命令,會在需要的時候在go.mod文件中添加新的依賴項 # 最好不要自己修改go.mod文件,因為在Go在向go.mod中添加依賴項的時候 # 同時會向go.sum中的hash對比,確定依賴是否修改。 go build go test
-
查看當前全部依賴項
# 列出了當前模塊所有的依賴項 go list -m all
-
修改指定依賴項的版本(或添加一個新的依賴項)
# 修改或添加 # go get -u 會更新依賴 # 獲取指定版本的形式 go get rsc.io/sampler@v1.3.1 go get
-
移除無用的依賴項
go mod tidy