最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang 如何自動下載所有依賴包

 更新時(shí)間:2021年04月30日 10:17:35   作者:landv  
這篇文章主要介紹了golang 自動下載所有依賴包的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

如何自動下載所有依賴包?

大部分情況下大家下載 Go 項(xiàng)目都是使用go get命令,它除了會下載指定的項(xiàng)目代碼,還會去下載這個(gè)項(xiàng)目所依賴的所有項(xiàng)目。

但是有的時(shí)候我們的項(xiàng)目由于各種原因并不是通過go get下載的,是通過git clone下載的,這樣代碼下下來就沒有依賴包了,沒辦法編譯通過的。

這樣的話怎么辦呢?

go get -d -v ./...

-d標(biāo)志只下載代碼包,不執(zhí)行安裝命令;

-v打印詳細(xì)日志和調(diào)試日志。這里加上這個(gè)標(biāo)志會把每個(gè)下載的包都打印出來;

./...這個(gè)表示路徑,代表當(dāng)前目錄下所有的文件。

補(bǔ)充:goland自動下載所有依賴

項(xiàng)目中使用了go.mod時(shí)可以使用以下命令自動下載全部依賴

方法一

go get -d -v ./...

方法二

go mod tidy

補(bǔ)充:go mod 無法自動下載依賴包的問題

go 11以后啟用了go mod功能,用于管理依賴包。

當(dāng)執(zhí)行g(shù)o mod init生成go.mod文件之后,golang在運(yùn)行、編譯項(xiàng)目的時(shí)候,都會檢查依賴并下載依賴包。

在啟動了go mod之后,通過go mod下載的依賴包,不在放在GOPATH/src中,而是放到GOPATH/pkg/mod中。

比如我當(dāng)前的GOPATH=/root/go,我在/root/goProjects/下新建了一個(gè)項(xiàng)目gProject1,并在項(xiàng)目下編寫了一些代碼,引用了一些第三方包:

echo $GO111MODULE

auto

mkdir /root/goProjects/gProject1

cd /root/goProjects/gProject1

vi main.go

cat main.go

package main
import (
 "log"

 "github.com/toolkits/smtp"
)

func main() {
 //s := smtp.New("smtp.exmail.qq.com:25", "notify@a.com", "password")
 s := smtp.NewSMTP("smtp.exmail.qq.com:25", "notify@a.com", "password",false,false,false)
 log.Println(s.SendMail("notify@a.com", "ulric@b.com;rain@c.com", "這是subject", "這是body,<font color=red>red</font>"))
}

go mod init gProject1

go: creating new go.mod: module gProject1

-cat go.mod

module gProject1
go 1.12
yzc:gProj

go run main.go

如果此時(shí)報(bào)錯(cuò):

build command-line-arguments: cannot load github.com/toolkits/smtp: cannot find module providing package github.com/toolkits/smtp

原因是因?yàn)間it版本較低,go get 無法通過git下載github.com/toolkits/smtp到指定路徑。

你可以手動執(zhí)行一下go get github.com/toolkits/smtp,發(fā)現(xiàn)會報(bào)一個(gè)類似這樣的錯(cuò)誤:

# go get github.com/toolkits/smtp
go get github.com/toolkits/smtp: git ls-remote -q https://github.com/toolkits/smtp in /root/go/pkg/mod/cache/vcs/7028097e3b6cce3023c34b7ceae3657ef3f2bbb25dec9b4362813d1fadd80297: exit status 129:
usage: git ls-remote [--heads] [--tags] [-u <exec> | --upload-pack <exec>] <repository> <refs>...

就是git版本太低了,無法支撐go get運(yùn)行g(shù)it時(shí)的參數(shù)調(diào)用。

升級git

macos:

brew upgrade git

centos6/7

Remove old git

sudo yum remove git*

centos6:

sudo yum -y install  https://centos6.iuscommunity.org/ius-release.rpm

centos7:

sudo yum -y install  https://centos7.iuscommunity.org/ius-release.rpm

sudo yum -y install git2u-all

再次執(zhí)行g(shù)o run main.go:

go: finding github.com/toolkits/smtp latest
go: downloading github.com/toolkits/smtp v0.0.0-20190110072832-af41f29c3d89
go: extracting github.com/toolkits/smtp v0.0.0-20190110072832-af41f29c3d89
2019/07/27 16:15:52 535 Error: ��ʹ����Ȩ���¼�������뿴: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • golang中的defer函數(shù)理解

    golang中的defer函數(shù)理解

    defer是Go語言中的延遲執(zhí)行語句,用來添加函數(shù)結(jié)束時(shí)執(zhí)行的代碼,常用于釋放某些已分配的資源、關(guān)閉數(shù)據(jù)庫連接、斷開socket連接、解鎖一個(gè)加鎖的資源,這篇文章主要介紹了golang中的defer函數(shù)理解,需要的朋友可以參考下
    2022-10-10
  • 詳解Golang如何優(yōu)雅的終止一個(gè)服務(wù)

    詳解Golang如何優(yōu)雅的終止一個(gè)服務(wù)

    后端服務(wù)通常會需要創(chuàng)建子協(xié)程來進(jìn)行相應(yīng)的作業(yè),但進(jìn)程接受到終止信號或正常結(jié)束時(shí),并沒有判斷或等待子協(xié)程執(zhí)行結(jié)束,下面這篇文章主要給大家介紹了關(guān)于Golang如何優(yōu)雅的終止一個(gè)服務(wù)的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Go語言實(shí)現(xiàn)圖片快遞信息識別的簡易方法

    Go語言實(shí)現(xiàn)圖片快遞信息識別的簡易方法

    這篇文章主要為大家介紹了Go語言實(shí)現(xiàn)圖片快遞信息識別的簡易方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Golang?websocket協(xié)議使用淺析

    Golang?websocket協(xié)議使用淺析

    這篇文章主要介紹了Golang?websocket協(xié)議的使用,WebSocket是一種新型的網(wǎng)絡(luò)通信協(xié)議,可以在Web應(yīng)用程序中實(shí)現(xiàn)雙向通信,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • 學(xué)會提升Go語言編碼效率技巧拒絕加班!

    學(xué)會提升Go語言編碼效率技巧拒絕加班!

    這篇文章主要為大家介紹了Go語言編碼效率提升技巧詳解,學(xué)會了從此拒絕加班,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • golang-gin-mgo高并發(fā)服務(wù)器搭建教程

    golang-gin-mgo高并發(fā)服務(wù)器搭建教程

    這篇文章主要介紹了golang-gin-mgo高并發(fā)服務(wù)器搭建教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 從錯(cuò)誤中學(xué)習(xí)改正Go語言六個(gè)壞習(xí)慣提高編程技巧

    從錯(cuò)誤中學(xué)習(xí)改正Go語言六個(gè)壞習(xí)慣提高編程技巧

    這篇文章主要為大家介紹了從錯(cuò)誤中學(xué)習(xí)改正Go語言五個(gè)壞習(xí)慣提高編程技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Go中基本數(shù)據(jù)類型和字符串表示之間轉(zhuǎn)換詳解

    Go中基本數(shù)據(jù)類型和字符串表示之間轉(zhuǎn)換詳解

    這篇文章主要為大家詳細(xì)介紹了Go中基本數(shù)據(jù)類型和字符串表示之間轉(zhuǎn)換的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Golang實(shí)現(xiàn)支付寶沙箱支付的方法步驟

    Golang實(shí)現(xiàn)支付寶沙箱支付的方法步驟

    本文主要介紹了Golang實(shí)現(xiàn)支付寶沙箱支付的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • golang基于Mutex實(shí)現(xiàn)可重入鎖

    golang基于Mutex實(shí)現(xiàn)可重入鎖

    鎖可重入也就是當(dāng)前已經(jīng)獲取到鎖的goroutine繼續(xù)調(diào)用Lock方法獲取鎖,Go標(biāo)準(zhǔn)庫中提供了sync.Mutex實(shí)現(xiàn)了排他鎖,但并不是可重入的,所以本文給大家介紹了golang基于Mutex實(shí)現(xiàn)可重入鎖,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2024-03-03

最新評論

甘谷县| 渭南市| 曲靖市| 上栗县| 高清| 东丰县| 余姚市| 婺源县| 调兵山市| 兰州市| 鹤壁市| 富宁县| 永州市| 新泰市| 余姚市| 麟游县| 汾阳市| 广东省| 蚌埠市| 绵竹市| 宝山区| 株洲县| 武清区| 常宁市| 普格县| 台中市| 伊宁市| 和硕县| 门头沟区| 内黄县| 莲花县| 宝应县| 环江| 扎鲁特旗| 长寿区| 金堂县| 沅陵县| 安陆市| 会理县| 常德市| 新绛县|