您好,登錄后才能下訂單哦!
Go語(yǔ)言是一個(gè)開源的編程語(yǔ)言,它能讓構(gòu)造簡(jiǎn)單、可靠且高效的軟件變得容易。今天億速云小編給大家介紹go語(yǔ)言依賴管理,一起來(lái)看看吧。
go mod指令
添加依賴
如果我們需要一個(gè)第三方的框架,首先查一下其在github上的url地址,如gin框架為github.com/gin-gonic/gin
首先開啟module模式,即SET GO111MODULE = on,默認(rèn)是auto(注意始終在當(dāng)前項(xiàng)目目錄下執(zhí)行命令,免得出什么幺蛾子)
SET GOPROXY=https://goproxy.cn將代理設(shè)成國(guó)內(nèi)的,不然下載不了,再加一句 env -w GOPROXY=https://goproxy.cn,direct(在goland中可以直接通過(guò)設(shè)置修改,不需要每次都執(zhí)行該命令,前面的開啟module模式也是一樣)
使用go mod init指令生成當(dāng)前項(xiàng)目的go.mod文件
如果本地不存在需要的框架(GOPATH下),則執(zhí)行go get -u github.com/gin-gonic/gin
,大功告成,此時(shí)該框架應(yīng)該會(huì)有三份,分別放在與src同級(jí)的pkg、GOPATH和External Libraries(實(shí)際不存在,goland虛擬出該目錄,其中包括當(dāng)前項(xiàng)目的module目錄和GOROOT下的src目錄,即SDK)目錄下,編輯器通過(guò)External Libraries下的包來(lái)識(shí)別代碼),當(dāng)然也可以使用go mod download
,但這個(gè)似乎不加參數(shù),那么應(yīng)該需要先在go.mod文件中添加該框架,才能成功,所以還是采用上一種
如果本地已經(jīng)存在需要的框架,則執(zhí)行go install github.com/gin-gonic/gin
或者在go.mod文件的require中添加github.com/gin-gonic/gin
(直接改文件好像不太行,應(yīng)該要用go mod edit),或者在程序中import github.com/gin-gonic/gin
然后執(zhí)行go mod tidy
刪除依賴
如果不再需要這個(gè)框架,則執(zhí)行go mod tidy
,如果程序中沒有涉及到該框架的代碼,該指令會(huì)自動(dòng)將go.mod
文件中的該框架刪除
此時(shí)External Libraries目錄下的該框架被刪除,其余兩處保留,結(jié)果是編輯器無(wú)法識(shí)別該框架,因此無(wú)法給出代碼提示,并且會(huì)在涉及到該框架的代碼處報(bào)錯(cuò)
其他指令
go mod vendor用于將當(dāng)前項(xiàng)目所有的依賴打包放到項(xiàng)目下的vendor目錄下,(該目錄由該指令創(chuàng)建,自己新建文件夾無(wú)效),這樣可以方便地將項(xiàng)目及其依賴拷貝到另外的計(jì)算機(jī)上。
另外扯點(diǎn)別的,goland 2019 3.0版本之后當(dāng)檢測(cè)到剪貼板中有g(shù)ithub.com/gin-gonic/gin等時(shí),會(huì)自動(dòng)生成彈窗詢問(wèn)是否安裝、導(dǎo)入等,如果已經(jīng)設(shè)置好開啟module模式并修改代理,可以直接點(diǎn)擊彈窗上的選項(xiàng)進(jìn)行操作
當(dāng)前vscode暫不能很好地支持module模式(無(wú)法給出外部框架的代碼提示,或時(shí)有時(shí)無(wú),也不太能實(shí)現(xiàn)自動(dòng)導(dǎo)包),另外錯(cuò)誤顯示延遲太嚴(yán)重。
關(guān)于go語(yǔ)言依賴管理的相關(guān)介紹就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的參考價(jià)值,可以學(xué)以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。