欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

這樣的話怎么辦呢?

go get -d -v ./...

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

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

./...這個表示路徑,代表當前目錄下所有的文件。

補充:goland自動下載所有依賴

項目中使用了go.mod時可以使用以下命令自動下載全部依賴

方法一

go get -d -v ./...

方法二

go mod tidy

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

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

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

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

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

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

如果此時報錯:

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

原因是因為git版本較低,go get 無法通過git下載github.com/toolkits/smtp到指定路徑。

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

# 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運行g(shù)it時的參數(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

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

相關(guān)文章

  • Golang實現(xiàn)請求限流的幾種辦法(小結(jié))

    Golang實現(xiàn)請求限流的幾種辦法(小結(jié))

    這篇文章主要介紹了Golang實現(xiàn)請求限流的幾種辦法(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Go語言結(jié)構(gòu)體定義和使用方法

    Go語言結(jié)構(gòu)體定義和使用方法

    這篇文章主要介紹了Go語言結(jié)構(gòu)體定義和使用方法,以實例形式分析了Go語言中結(jié)構(gòu)體的定義和使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go語言包和包管理詳解

    Go語言包和包管理詳解

    這篇文章主要為大家介紹了Go語言包和包管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • golang日志框架之logrus的使用

    golang日志框架之logrus的使用

    這篇文章主要介紹了golang日志框架之logrus的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • GO 反射對性能的影響分析

    GO 反射對性能的影響分析

    這篇文章主要為大家介紹了GO 反射對性能的影響分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • golang如何用http.NewRequest創(chuàng)建get和post請求

    golang如何用http.NewRequest創(chuàng)建get和post請求

    這篇文章主要介紹了golang如何用http.NewRequest創(chuàng)建get和post請求問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Go?error的使用方式詳解

    Go?error的使用方式詳解

    當我們需要在Go項目中設計error,就不得不先知道Go error幾種常用方法,今天通過本文給大家介紹Go?error的使用方式詳解,感興趣的朋友一起看看吧
    2022-05-05
  • 詳解go語言單鏈表及其常用方法的實現(xiàn)

    詳解go語言單鏈表及其常用方法的實現(xiàn)

    這篇文章主要介紹了詳解go語言單鏈表及其常用方法的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 使用Golang簡單實現(xiàn)七牛圖片處理API

    使用Golang簡單實現(xiàn)七牛圖片處理API

    本文給大家實現(xiàn)的是使用Golang簡單實現(xiàn)七牛圖片處理API的方法和步驟,基于PIPE庫實現(xiàn)的,非常的實用,有需要的小伙伴可以參考下
    2016-08-08
  • Golang日志庫logrus的介紹與使用示例代碼

    Golang日志庫logrus的介紹與使用示例代碼

    Logrus是Go語言的一個功能豐富的日志庫,支持結(jié)構(gòu)化日志和多級別日志記錄,它兼容標準log庫,并可通過自定義Hooks和Formatter進行高度定制化,支持集成如syslog等系統(tǒng),便于管理和分析,Logrus還支持自定義日志顏色和格式,以及根據(jù)日志級別進行不同處理,如panic和exit
    2024-10-10

最新評論