GoLang 中常用的包管理的方式
1 )概述
- 常用的有三種
- Go Path
- Go Vendor
- Go Modules
2 )發(fā)展歷程
- 早期go的包管理存在很大缺陷,甚至可以說沒有官方統(tǒng)一的包管理工具
- 一方面官方在努力發(fā)布一些實驗性的包管理工具。
- 同時也出現(xiàn)了很多社區(qū)開發(fā)的包管理工具。
- 在官方和社區(qū)的包管理工具中,僅官方推薦的就達15種之多。
- 比如go path, godep,glide, go vendor等等。
- 雖然在前期 Go包管理工具處于百家爭鳴之態(tài), 但是主流的go的包管理
- 我們只需要記住下面這三種主要的
- 第一個是 Go Path (從go誕生的時候就支持)
- 第二個是 Go Vendor (從 go 1.5 版本開始)
- 第三個是 Go Modules (從 go 1.11 才開始支持)
關(guān)于 Go Path
1 ) 概述
- 我們先來看看go語言,剛發(fā)布階段,是怎么去做包管理的
- 在go語言的發(fā)布階段,主要是通過 Go Path 模式來進行包管理
- Go Path 是最早的依賴包管理方式。從 2009.11.10 隨著第一個發(fā)布的第一個開源版本就有了
- Go Path本質(zhì)上它不算是go的包管理工具,它只是提供了一個存放包的路徑的一個環(huán)境變量
- Go Path 模式有一個很大的缺陷,就是它不支持依賴包的版本控制
- 因為 Go Path 模式下,同一個包, 它的導入路徑是一樣的,這樣也就不支持依賴包的不同版本
2 ) Go Path模式 和 Go Path路徑的區(qū)別
- 需要注意的是,Go Path模式 和 Go Path路徑是兩個不同的概念
- Go Path模式: 是指我們通過 Go Path, 來管理我們的包
- Go Path路徑, 指的是 Go Path 這個環(huán)境變量的路徑
- 不管我們使用哪種包管理方式都可以有 Go Path 路徑, 其包管理方式
- 可能依賴 Go Path 路徑來實現(xiàn)
- 也可能不需要 Go Path 路徑
- 并不是設置 Go Path 路徑就一定使用了 Go Path 模式來管理我們的依賴包
- 這一點是我們需要注意的
3 ) Go Root 和 Go Path的區(qū)別文章來源:http://www.zghlxwxcb.cn/news/detail-770133.html
- Go Root 是go的安裝目錄,存放的是go語言內(nèi)置的開發(fā)包和工具類,就類似Java的JDK
- Go Path是go語言指定的工作空間,用于存放go工程代碼和第三方依賴包
- 當然,如果我們使用 Go Modules 管理,我們的工程代碼也沒有必要一定要放在Go Path下
- 需要注意的是,Go Path 目錄和 Go Root 目錄不能是同一個目錄
- 這樣就會很容易導致項目中的包和標準庫重名而造成編譯出現(xiàn)問題
- Go Path 是有默認值的,那在Go的1.8版本之前,Go Path 的環(huán)境變量默認是空的
- 那從1.8版本開始呢,go開發(fā)包在安裝完成之后,就會給 Go Path 一個默認的目錄
- 在Windows目錄下,它的默認目錄就是這個
%USERPROFILE%/go
- 例如: c:\users\用戶名\go
- 在Unix類型的操作系統(tǒng)下面,那它是在home目錄下面的go目錄當中
- 例如: /home/用戶名/go
- 我們可以通過
go env
指令來查看這兩個環(huán)境變量的具體路徑- Windows 上執(zhí)行這個
go env
這個命令 - Linux環(huán)境,比如 redhat
- 先查看操作系統(tǒng)的版本
cat /etc/redhat-release
- 我們再執(zhí)行
go env | grep PATH
- 先查看操作系統(tǒng)的版本
- Windows 上執(zhí)行這個
4 ) Go Pass是怎么配置的文章來源地址http://www.zghlxwxcb.cn/news/detail-770133.html
- 在linux環(huán)境當中,如果我們希望不同的用戶具有不同的 Go Pass
- 我們可以將 Go Pass 設置到這個
~/.bash_profile
這個文件里面- 只會對當前登錄的這個用戶生效。比如當前登錄的用戶是張三
- 那這種配置呢比較適合使用linux操作系統(tǒng)的開發(fā)者環(huán)境使用
- 在線上部署的時候,我們可以設置到
/etc/profile
這個文件里面- 這個文件中的設置, 是對全部用戶都是有效的
- 同時, 我們又可以將 GOBIN 這個環(huán)境變量加入到 PATH 變量中
- 可以在這個
etc/profile
這個文件末尾, 增加這三個go的環(huán)境變量, 舉例~export GOPATH = $HOME/mygopath$
export GOBIN = $GOPATH/bin$
-
export PATH = $PATH:$GOBIN$
追加導出
- 當我們開啟了Go Path模式, 我們的工程代碼就必須放在 Go Path 下面的 src 這個目錄下面
- 即:
$GOPATH/src
- 即:
- 當我們用到一些第三方依賴包的時候, 就需要通過
go get
命令去拉取
到了這里,關(guān)于Go語言中的包管理工具之Go Path的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!