使用golang引入外部包的三種方式:go get, go module, vendor目錄
import "github.com/astaxie/beego" 編譯出錯(cuò)解決方案:
go get
確保你的GOPATH是工程目錄,代碼在src目錄下,然后在命令提示符中輸入:go get github.com/astaxie/beego,
然后在本地的src下就生成了要引入的外部包。
注意:
在使用GoLand工具時(shí),配置settings->Go->GOPATH->Project GOPATH為當(dāng)前工程目錄
go module
Go 的 1.11版本以上才能使用Go Module,1.13版本以下Go Module默認(rèn)關(guān)閉,
首先需要設(shè)置環(huán)境變量 set GO111MODULE=on,
在GOPATH的目錄下,新建項(xiàng)目文件夾,進(jìn)入新建路徑執(zhí)行g(shù)o mod init,在文件夾下生成go.mod文件,
然后將需要引入外部包的go文件置于項(xiàng)目目錄下,編譯文件,就會(huì)把外部包下載到本地的GOPATH/pkg/mod目錄下
注意:
在使用GoLand工具時(shí),不要配置Project GOPATH為當(dāng)前工程目錄,最好不要配置Project GOPATH,而是配置Module GOPATH
vendor目錄
首先安裝govendor : go get -u -v github.com/kardianos/govendor
下載完,配置環(huán)境變量GOPATH/bin,鍵入命令govendor -version 檢查是否安裝成功
在GOPATH/src的目錄下,新建項(xiàng)目文件夾,進(jìn)入新建路徑執(zhí)行g(shù)ogovendor init,就會(huì)在文件夾下生成vendor/vendor.json,
然后將需要引入外部包的go文件置于項(xiàng)目目錄下,
使用命令:
govendor fetch github.com/golang/glog 將外部文件下載到本地vendor/下,并在vendor.json中添加該依賴包的信息,其中g(shù)ovendor fetch是從從遠(yuǎn)端庫添加依賴包,而從 $GOPATH 中添加依賴包,使用govendor add
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Go程序的init函數(shù)在什么時(shí)候執(zhí)行
在Go語言中,init?函數(shù)是一個(gè)特殊的函數(shù),它用于執(zhí)行程序的初始化任務(wù),本文主要介紹了Go程序的init函數(shù)在什么時(shí)候執(zhí)行,感興趣的可以了解一下2023-10-10
Go 語言json.Unmarshal 遇到的小問題(推薦)
這篇文章主要介紹了 Go 語言json.Unmarshal 遇到的小問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
golang中slice擴(kuò)容的具體實(shí)現(xiàn)
Go 語言中的切片擴(kuò)容機(jī)制是 Go 運(yùn)行時(shí)的一個(gè)關(guān)鍵部分,它確保切片在動(dòng)態(tài)增加元素時(shí)能夠高效地管理內(nèi)存,本文主要介紹了golang中slice擴(kuò)容的具體實(shí)現(xiàn),感興趣的可以了解一下2025-05-05
Golang實(shí)現(xiàn)常見的限流算法的示例代碼
限流是項(xiàng)目中經(jīng)常需要使用到的一種工具,一般用于限制用戶的請(qǐng)求的頻率,也可以避免瞬間流量過大導(dǎo)致系統(tǒng)崩潰,或者穩(wěn)定消息處理速率,本文主要介紹了使用Go實(shí)現(xiàn)常見的限流算法,希望對(duì)大家有所幫助2023-04-04
Golang迭代如何在Go中循環(huán)數(shù)據(jù)結(jié)構(gòu)使用詳解
這篇文章主要為大家介紹了Golang迭代之如何在Go中循環(huán)數(shù)據(jù)結(jié)構(gòu)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10

