從使用golang開發項目以來,golang的項目代碼依賴問題就一直困擾着我,主要是對gopath的用法不明瞭致使了項目結構很混亂,最近忽然想到一個很好的gopath用法,仔細研究了一下確實可行,這裏就寫下來了分享給你們參考git
首先我想實現的項目結構是,有一個單獨的目錄用來存放第三方開源庫,而後我本身的多個golang項目能夠共用這些開源庫。
另外我不想每次切換項目的時候都去設置全局的gopath目錄。github
我所使用的是mac環境,其餘環境請自行研究配置方式,應該大同小異
首先在環境變量中設置golang
vi ~/.bash_profile
export GOPATH=/work/go/gopath
這裏只設置共享的三方開源庫存放目錄,go get 安裝的三方庫都會存在這裏bash
在編譯項目的時候手動將項目跟目錄添加到GOPATH後面spa
echo $GOPATHserver
/work/go/gopath開發
export GOPATH=$GOPATH:/work/go/loolgame
echo $GOPATHrem
/work/go/gopath:/work/go/loolgame文檔
項目目錄要在共享開源目錄後面
最後執行編譯命令
go install serverget
在編譯器環境下咱們能夠經過設置編譯器中gopath環境來達到以上相同的目的
intelij IDEA
安裝命令:go get golang.org/x/net,錯誤提示:package golang.org/x/net: unrecognized import path "golang.org/x/net",包文檔地址:https://godoc.org/golang.org/...。
這個問題主要是由於golang.org 被牆了沒法訪問
簡單的解決方案是
從https://github.com/golang/net下載,而後把目錄改爲golang.org/x/net。而後,萬事大吉。
ps:有git的話能夠直接 go get github.com/golang/net,沒有的話本身手動下載放到src目錄下便可。