golang使用go mod導(dǎo)入本地包和第三方包的方式
一、本地包和第三方包導(dǎo)入項(xiàng)目時(shí)遇到的問題
導(dǎo)入第三方包的方式:
import "github.com/astaxie/beego"
導(dǎo)入本地包的方式:
// 導(dǎo)入本地的一個(gè)命名為model的包 import "./model"
這個(gè)時(shí)候,如果使用go mod方式來管理包依賴,那么beego將正常下載安裝并引入,但是本地的model包卻會提示找不到
如果不使用go mod方式,并去掉對beego的引用,那么本地model是可以正常引用的
怎么解決?
二、解決辦法
使用go mod,在項(xiàng)目目錄下執(zhí)行g(shù)o mod init demo/v1,創(chuàng)建一個(gè)demo/v1的module
本地包的引入方式修改成
import "demo/v1/model"
如果IDE使用的是goland,那么修改Go > Go Modules(vgo),勾選 Enable Go Modules (vgo) integration,proxy填:https://goproxy.cn,不然IDE無法跟蹤到代碼步
驟三等同于在終端設(shè)置
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
三、另外在多項(xiàng)目時(shí)設(shè)置GOPATH
在goland中,可以為本項(xiàng)目設(shè)置GOPATH,在 Go > GOPATH 中可以設(shè)置 $workdir/demo
項(xiàng)目結(jié)構(gòu)建議
demo/ .idea/ bin/ pkg/ src/
這樣第三方的包會下載到demo/pkg下,源碼在src里,src的目錄可以作為git倉庫管理
總結(jié)
在使用go mod的時(shí)候,本地包就不能使用相對路徑來引用了,需要使用module名字作為前綴,即go mod init 時(shí)指定的module名字,可以在go.mod文件中看到
module demo/v1 go 1.14 require ( github.com/astaxie/beego v1.12.1 // indirect github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect )
最后
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Go結(jié)合Gin導(dǎo)出Mysql數(shù)據(jù)到Excel表格
本文主要介紹了Go結(jié)合Gin導(dǎo)出Mysql數(shù)據(jù)到Excel表格,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08使用Go語言實(shí)現(xiàn)Yaml編碼和解碼的方法詳解
在這篇文章中,我們將介紹如何使用Go語言編寫代碼來實(shí)現(xiàn)Yaml編碼和解碼,文中有詳細(xì)的代碼示例供大家參考,對大家的學(xué)習(xí)和工作有一定的幫助,需要的朋友可以參考下2023-11-11使用go實(shí)現(xiàn)一個(gè)超級mini的消息隊(duì)列的示例代碼
本文主要介紹了使用go實(shí)現(xiàn)一個(gè)超級mini的消息隊(duì)列的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12一文帶你了解Go語言fmt標(biāo)準(zhǔn)庫輸入函數(shù)的使用
這篇文章主要為大家詳細(xì)介紹了Go語言中?fmt?標(biāo)準(zhǔn)庫輸入函數(shù)的使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-01-01Go語言中進(jìn)行API限流的實(shí)戰(zhàn)詳解
API?限流是控制和管理應(yīng)用程序訪問量的重要手段,旨在防止惡意濫用、保護(hù)后端服務(wù)的穩(wěn)定性和可用性,下面我們就來看看如何在Go語言中具體實(shí)現(xiàn)吧2025-01-01