$GOPATH
- 允許設置多個路徑
- GOPATYH目錄結構
goWorkSpapce //GOPATH目錄
-- bin //編譯可執行文件存放的路徑,可自動生成
-- pkg ///.a中間文件存放路徑,可自動生成
-- src //源碼路徑
GO get
- 1.從遠程下載需要的包 2.執行go install
GO install
-
編譯生成可執行文件,放在GOBIN路徑下,GOBIN默認是在GOPATH/bin文件夾下
-
如果不用額外方式改變環境變量(公司目前用的是sh腳本編譯),是編譯不過的。報錯:can’t load package: package .: no buildable Go source files in ***
編譯問題
- 問題:多個project會導致多個GOPATH目錄,而go優先使用第一個GOPATH目錄,會導致編譯沖突
- 解決方法
-
使用如下目錄:多個project或工具組件都放在GOPATH的src下
-
此時GOBIN可以為空
-
GOPATH目錄和GOPATH下的src不應該添加到源代碼管理中,而是各個project目錄myApp1、myApp2、myApp3各自時獨立的進行源代碼管理
-
goWorkSpace // goWorkSpace為GOPATH目錄 -- bin -- myApp1 // 編譯生成 -- myApp2 // 編譯生成 -- myApp3 // 編譯生成 -- pkg -- src -- common 1 -- common 2 -- common utils ... -- myApp1 // project1 -- models -- controllers -- others -- main.go -- myApp2 // project2 -- models -- controllers -- others -- main.go -- myApp3 // project3 -- models -- controllers -- others -- main.go
-
go mod包管理
- 優勢:不受GOPATH的限制,可以在任意的文件夾下創建工程
- 例子:在GoLand中使用go mod模式創建工程,會自動生成go.mod文件,然后就可以正產編譯包了
命令行使用方式
-
設置變量GO111MODULE為on
-
go mod init + projectname:初始化mod
-
go.mod稱為模塊根,定義了它所在目錄為一個模塊
-
使用go build main.go編譯