golang使用go mod導入本地包和第三方包的方式
一、本地包和第三方包導入項目時遇到的問題
導入第三方包的方式:
import "github.com/astaxie/beego"
導入本地包的方式:
// 導入本地的一個命名為model的包 import "./model"
這個時候,如果使用go mod方式來管理包依賴,那么beego將正常下載安裝并引入,但是本地的model包卻會提示找不到
如果不使用go mod方式,并去掉對beego的引用,那么本地model是可以正常引用的
怎么解決?
二、解決辦法
使用go mod,在項目目錄下執(zhí)行go mod init demo/v1,創(chuàng)建一個demo/v1的module
本地包的引入方式修改成
import "demo/v1/model"
如果IDE使用的是goland,那么修改Go > Go Modules(vgo),勾選 Enable Go Modules (vgo) integration,proxy填:https://goproxy.cn,不然IDE無法跟蹤到代碼步
驟三等同于在終端設置
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct
三、另外在多項目時設置GOPATH
在goland中,可以為本項目設置GOPATH,在 Go > GOPATH 中可以設置 $workdir/demo
項目結構建議
demo/
.idea/
bin/
pkg/
src/這樣第三方的包會下載到demo/pkg下,源碼在src里,src的目錄可以作為git倉庫管理
總結
在使用go mod的時候,本地包就不能使用相對路徑來引用了,需要使用module名字作為前綴,即go mod init 時指定的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 )
最后
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Go結合Gin導出Mysql數(shù)據(jù)到Excel表格
本文主要介紹了Go結合Gin導出Mysql數(shù)據(jù)到Excel表格,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08
使用go實現(xiàn)一個超級mini的消息隊列的示例代碼
本文主要介紹了使用go實現(xiàn)一個超級mini的消息隊列的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12

