Golang如何使用go.mod配置加載本地模塊
Golang使用go.mod配置加載本地模塊
Go現(xiàn)在通過(guò) go.mod 文件來(lái)配置模塊加載使用是非常方便了,下面說(shuō)下如何在當(dāng)前項(xiàng)目中加載另一個(gè)本地正在開(kāi)發(fā)的模塊:
go.mod
module github.com/zhouzme/test-go go 1.12 require github.com/zhouzme/snail-go v0.0.0-20190401091717-1f0218b38bc8 replace github.com/zhouzme/snail-go => E:\Go\snail-go
默認(rèn)使用 github.com/zhouzme/snail-go 包會(huì)到 github 上去下載,但這個(gè)包還在本地開(kāi)發(fā)中并未push到線上,那么可以通過(guò) replace 配置來(lái)重定向當(dāng)前項(xiàng)目對(duì)該包的加載路徑:
replace github.com/zhouzme/snail-go => E:\Go\snail-go
這里 E:\Go\snail-go 為本地包的絕對(duì)路徑,這樣寫(xiě)就可以了,當(dāng)本地 snail-go 包代碼修改后就可以在當(dāng)前項(xiàng)目看到實(shí)時(shí)效果了,注意中間符號(hào)是 =>

Go mod使用
使用Go mod進(jìn)行包管理,會(huì)使你進(jìn)行項(xiàng)目移植的時(shí)候輕松許多
go mod是在go 1.11版本新加的特性,所以使用go mod要保證go的版本在1.11或之后。
將如下配置到你的go環(huán)境變量中
# on 表示只使用 Go Modules,而不去Go PATCH 下去找包 # 我使用的goland,第一次執(zhí)行這命令報(bào)錯(cuò) warning: go env -w GO111MODULE=... does not override conflicting OS environm # 原因是需要在設(shè)置中,在Go Modules配置里 Enable Go modules integration 前面的對(duì)號(hào)沒(méi)有勾選 # 勾選保存后,需要重啟goland 再執(zhí)行就ok了 go env -w GO111MODULE=on
taps:
- go env :查看go的環(huán)境變量
- go env -w XXX=XXX :配置go的環(huán)境變量
- go env -u XXX=XXX :取消go的環(huán)境變量
命令:(只說(shuō)幾個(gè)重要的)
- go help mod:查看幫助
- go init:在當(dāng)前文件夾(項(xiàng)目)下初始化一個(gè)新的
- modulego tidy:同步模塊
步驟
建立工程
到工程目錄下:go mod init (工程名)
工程名加不加都行

會(huì)生成一個(gè)go.mod文件

現(xiàn)在使工程中引入一些需要下載的包

使用go mod tidy 同步模塊,如果此步驟無(wú)法同步包,有可能是網(wǎng)絡(luò)問(wèn)題,需要配置代理:
2022/11/15 當(dāng)前好用代理配置如下 # 配置 GOPROXY 環(huán)境變量 go env -w GOPROXY=https://proxy.golang.com.cn,direct # 還可以設(shè)置不走 proxy 的私有倉(cāng)庫(kù)或組,多個(gè)用逗號(hào)相隔(可選) go env -w GOPRIVATE=git.mycompany.com,github.com/my/private

此時(shí)的go.mod中出現(xiàn)了新的包 和 版本

配置成功
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Go語(yǔ)言實(shí)現(xiàn)benchmark解析器
這篇文章主要為大家詳細(xì)介紹了如何使用Go語(yǔ)言實(shí)現(xiàn)benchmark解析器并實(shí)現(xiàn)及Web UI 數(shù)據(jù)可視化,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下2025-04-04
GoZero實(shí)現(xiàn)數(shù)據(jù)庫(kù)MySQL單例模式連接的簡(jiǎn)單示例
在 GoZero 框架中實(shí)現(xiàn)數(shù)據(jù)庫(kù)的單例連接可以通過(guò)以下步驟來(lái)完成,GoZero 使用 gorm 作為默認(rèn)的數(shù)據(jù)庫(kù)操作框架,接下來(lái)我會(huì)展示一個(gè)簡(jiǎn)單的單例模式實(shí)現(xiàn),需要的朋友可以參考下2025-02-02
Golang收支記賬程序詳細(xì)編寫(xiě)過(guò)程
這篇文章主要介紹了Golang實(shí)現(xiàn)收支記賬程序流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
golang結(jié)構(gòu)化日志log/slog包之slog.Record的用法簡(jiǎn)介
這篇文章主要為大家詳細(xì)介紹了golang結(jié)構(gòu)化日志log/slog包中slog.Record結(jié)構(gòu)體的使用方法和需要注意的點(diǎn),文中的示例代碼講解詳細(xì),需要的可以學(xué)習(xí)一下2023-10-10

