go的代碼剛看沒幾天 老大就直接丟了個go的項目給我逻翁,說后面有幾個功能有時間讓我試著優(yōu)化看看...
代碼是直接壓縮包傳給我的(一點也不技術
目錄如上(上面一堆文件夾就是依賴包侨核,業(yè)務代碼都是main.go缘屹,其他沒啥,結(jié)構(gòu)很清晰)
那我就想把項目搭建起來涧卵,跑跑看
剛學習沒幾天捧搞,我知道go語言中有個GOPATH非常重要,該路徑關系著依賴包是否能夠成功依賴健民,
所以我就先嘗試著修改GOPATH
修改完抒巢,結(jié)果發(fā)現(xiàn),功能強大的GoLand還是一堆報錯秉犹,其中就包括依賴包缺失蛉谜,我就知道光修改GOPATH肯定出問題了
這個時候老大發(fā)了兩個命令給我
go mod ???
百度了下稚晚,發(fā)現(xiàn)!!!
從go1.10往后基本就放棄通過GOPATH來管理依賴包了,轉(zhuǎn)而使用gomod型诚,(我看的學習視頻是兩年前的T.T
基本命令也不多客燕,目前我使用到的就兩個
- go mod init {項目名}
- go mod tidy
注意點
go mod init.
1. go mod init 后面要跟上項目名,否則會報錯 類似(go: cannot determine module path for source directory /Applications/MxSrvs/go_project/tpa_subhook (outside GOPATH, module path must be specified))
2. 項目名別瞎取俺驶,最好和文件名幸逆,項目名保持一致
3. go: creating new go.mod: module tpa_subhook 即執(zhí)行成功,會在項目目錄下生成go.mod文件暮现。我這邊是等待了一小會兒还绘,等的時候,我一度以為這個命令沒起作用...
4. import gifhub上的依賴包栖袋,直接寫網(wǎng)址就好
5. import 本地依賴包拍顷,項目名/依賴包名 項目名就是go mod init 后面設置的名字
go mod tidy.
1. go mod tidy 執(zhí)行的時候,我這里一直在報錯 (.......dial tcp 142.251.43.17:443: i/o timeout)塘幅,即使我掛了梯子也不行...百度了一下昔案,確實是因為翻墻的原因(可能我的梯子太渣了.)。go env
查看環(huán)境配置GOPROXY="https://proxy.golang.org,direct" GOSUMDB="sum.golang.org" 主要是第二個參數(shù)導致的电媳,但是我們修改第一個就好了(o.o), export GOPROXY=https://goproxy.io
再次執(zhí)行 go mod tidy就下載成功了踏揣。
2.執(zhí)行成功后,會出現(xiàn)go.sum文件