手把手教你用VS?code快速搭建一個(gè)Golang項(xiàng)目
前言
VC code是一款巨好用的編輯器,使用vs code開(kāi)發(fā)項(xiàng)目需要進(jìn)行一些配置。項(xiàng)目中需要用到很多的包,無(wú)論是自己建的還是第三方的。由于go語(yǔ)言的生態(tài)環(huán)境沒(méi)有java與python那樣好,沒(méi)有一個(gè)好的的包管理工具這給想用vs code開(kāi)發(fā)golang項(xiàng)目的同學(xué)帶來(lái)了困擾,本篇博客寫(xiě)了關(guān)于一個(gè)go語(yǔ)言初學(xué)者如何使用VScode搭建go語(yǔ)言項(xiàng)目的過(guò)程,對(duì)初學(xué)者很友好,可以快速的搭建起來(lái)一個(gè)go語(yǔ)言項(xiàng)目。如果不擅長(zhǎng)配置的話可以使用goland,相對(duì)于goland來(lái)說(shuō),VScode搭建項(xiàng)目顯得困難了許多。接下來(lái)就帶大家了解一下如何在沒(méi)有集成開(kāi)發(fā)環(huán)境下手刃一個(gè)go語(yǔ)言項(xiàng)目。
安裝go語(yǔ)言環(huán)境
這個(gè)巨簡(jiǎn)單就不說(shuō)了,大家可以網(wǎng)上檢索一下教程。
了解Go開(kāi)發(fā)相關(guān)的環(huán)境變量
#GOROOT:GOROOT就是Go的安裝目錄,(類似于java的JDK)。不用往環(huán)境變量配置。包管理方式變成Go Module之后就用處不大了。
GOROOT = D:\Go (你安裝go環(huán)境的目錄)
#GOPATH:GOPATH是我們的工作空間,保存go項(xiàng)目代碼和第三方依賴包。安裝后,在環(huán)境變量中有。
GOPATH = %USERPROFILE%\go
#配置代理加速(因?yàn)間o語(yǔ)言用到的包大多數(shù)都在github)
GOPROXY=https://goproxy.cn,direct
熟悉Go Module
(1)使用 go module 管理依賴后會(huì)在項(xiàng)目根目錄下生成兩個(gè)文件 go.mod 和 go.sum。go.mod 中會(huì)記錄當(dāng)前項(xiàng)目的所依賴的包的信息。
(2)在需要使用時(shí)才開(kāi)啟GO111MODULE = on,平時(shí)GO111MODULE = off,避免在已有項(xiàng)目中意外引入 go module。
(3)go module 的目的是依賴管理,所以使用 go module 時(shí)你可以舍棄 go get 命令(但是不是禁止使用, 如果要指定包的版本或更新包可使用go get,平時(shí)沒(méi)有必要使用)
要使用go module 首先要設(shè)置GO111MODULE=on,GO111MODULE 有三個(gè)值,off、on、auto。 auto 會(huì)根據(jù)當(dāng)前目錄下是否有 go.mod 文件來(lái)判斷是否使用 modules 功能。 平時(shí) GO111MODULE = off,在需要使用的時(shí)候再開(kāi)啟,避免在已有項(xiàng)目中意外引入 go module。 命令: set GO111MODULE=on go env // 查看 GO111MODULE 選項(xiàng)為 on 代表修改成功
#初始化。先進(jìn)入test項(xiàng)目下,然后執(zhí)行此命令,項(xiàng)目根目錄會(huì)出現(xiàn)一個(gè) go.mod 文件 go mod init test #檢測(cè)依賴。tidy會(huì)檢測(cè)該文件夾目錄下所有引入的依賴,寫(xiě)入 go.mod 文件,寫(xiě)入后你會(huì)發(fā)現(xiàn) go.mod 文件有所變動(dòng) go mod tidy #下載依賴。我們需要將依賴下載至本地,而不是使用 go get go mod download #導(dǎo)入依賴。此命令會(huì)將剛才下載至 GOPATH 下的依賴轉(zhuǎn)移至該項(xiàng)目根目錄下的 vendor(自動(dòng)新建) 文件夾下, 此時(shí)我們就可以使用這些依賴了 go mod vendor #依賴更新:這里的更新不是指版本的更新,而是指引入新依賴,依賴更新請(qǐng)從檢測(cè)依賴部分一直執(zhí)行即可: go mod tidy go mod download go mod vendor
注:go mod vendor創(chuàng)建的文件夾里面可以放用戶自己的定制的包(放入后直接用包名就可以導(dǎo)入項(xiàng)目不需要相對(duì)路徑)
創(chuàng)建一個(gè)go項(xiàng)目
- 新建文件夾demo,作為項(xiàng)目根目錄
- cmd,執(zhí)行命令:go mod init demo 此時(shí)會(huì)生成一個(gè)go.mod文件(存放項(xiàng)目依賴)
- vscode打開(kāi)文件:選擇項(xiàng)目根目錄demo
- 新建main.go文件:在根目錄下創(chuàng)建main.go文件
- 執(zhí)行
- go mod tidy // 添加或者刪除 modules,取決于依賴的引用 (執(zhí)行完生成go.sum文件)
注意是添加刪除,用不好vendor內(nèi)的自定義包就沒(méi)有了 - go mod vendor // 復(fù)制依賴到 vendor 目錄下
- go mod tidy // 添加或者刪除 modules,取決于依賴的引用 (執(zhí)行完生成go.sum文件)
如圖
此時(shí)就可以放肆地開(kāi)發(fā)了,自己定義的包要放在vendor目錄下。不要隨便使用go mod tidy命令,因?yàn)檫@個(gè)命令是檢測(cè)當(dāng)前目錄的依賴,也就是main.go所在的目錄
,如果是你自己寫(xiě)了項(xiàng)目,并且有很多自定義包他很可能會(huì)給你移除掉。
項(xiàng)目遷移
項(xiàng)目中可能引用了大量的github第三方庫(kù),使用go mod tidy可以直接將所有的第三方庫(kù)下載下來(lái)(前提是網(wǎng)絡(luò)通暢)
本篇文章上面教過(guò)大家Go語(yǔ)言配置加速代理了,最好配置一下。
- 將別人的項(xiàng)目解壓出來(lái)
- 在main.go同級(jí)目錄下進(jìn)入cmd命令行
- 執(zhí)行 go mod tidy
- 執(zhí)行 go mod download
- 執(zhí)行 go mod vendor
- 將自定義包導(dǎo)入vendor目錄下
- 項(xiàng)目配置完成
可以看一下下面的項(xiàng)目目錄結(jié)構(gòu):
總結(jié)
到此這篇關(guān)于用VS code快速搭建一個(gè)Golang項(xiàng)目的文章就介紹到這了,更多相關(guān)VS code快速搭建Golang項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
go語(yǔ)言如何使用gin庫(kù)實(shí)現(xiàn)SSE長(zhǎng)連接
所謂長(zhǎng)連接指在一個(gè)TCP連接上可以連續(xù)發(fā)送多個(gè)數(shù)據(jù)包,在TCP連接保持期間,如果沒(méi)有數(shù)據(jù)包發(fā)送,需要雙方發(fā)檢測(cè)包以維持此連接,一般需要自己做在線維持,下面這篇文章主要給大家介紹了關(guān)于go語(yǔ)言如何使用gin庫(kù)實(shí)現(xiàn)SSE長(zhǎng)連接的相關(guān)資料,需要的朋友可以參考下2023-06-06go語(yǔ)言心跳超時(shí)的實(shí)現(xiàn)示例
本文主要介紹了go語(yǔ)言心跳超時(shí)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Go語(yǔ)言實(shí)現(xiàn)UDP版聊天小工具的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Go語(yǔ)言實(shí)現(xiàn)聊天小工具(UDP版),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03Go語(yǔ)言中的匿名結(jié)構(gòu)體用法實(shí)例
這篇文章主要介紹了Go語(yǔ)言中的匿名結(jié)構(gòu)體用法,實(shí)例分析了匿名結(jié)構(gòu)體的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02Go使用協(xié)程批量獲取數(shù)據(jù)加快接口返回速度
這篇文章主要介紹了Go使用協(xié)程批量獲取數(shù)據(jù)加快接口返回速度,使用Go語(yǔ)言后,可以并發(fā)獲取,極大提升效率,需要的朋友可以參考下2023-02-02自動(dòng)生成代碼controller?tool的簡(jiǎn)單使用
這篇文章主要為大家介紹了自動(dòng)生成代碼controller?tool的簡(jiǎn)單使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05