iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >golang 如何自动下载所有依赖包
  • 703
分享到

golang 如何自动下载所有依赖包

2024-04-02 19:04:59 703人浏览 八月长安
摘要

如何自动下载所有依赖包? 大部分情况下大家下载 Go 项目都是使用go get命令,它除了会下载指定的项目代码,还会去下载这个项目所依赖的所有项目。 但是有的时候我们的项目由于各种原

如何自动下载所有依赖包?

大部分情况下大家下载 Go 项目都是使用go get命令,它除了会下载指定的项目代码,还会去下载这个项目所依赖的所有项目。

但是有的时候我们的项目由于各种原因并不是通过go get下载的,是通过git clone下载的,这样代码下下来就没有依赖包了,没办法编译通过的。

这样的话怎么办呢?


go get -d -v ./...

-d标志只下载代码包,不执行安装命令;

-v打印详细日志和调试日志。这里加上这个标志会把每个下载的包都打印出来;

./...这个表示路径,代表当前目录下所有的文件。

补充:goland自动下载所有依赖

项目中使用了go.mod时可以使用以下命令自动下载全部依赖

方法一


go get -d -v ./...

方法二


go mod tidy

补充:go mod 无法自动下载依赖包的问题

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

当执行go 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到指定路径。

你可以手动执行一下go get github.com/toolkits/smtp,发现会报一个类似这样的错误:

# 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运行git时的参数调用。

升级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

再次执行go 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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文档:

--结束END--

本文标题: golang 如何自动下载所有依赖包

本文链接: https://www.lsjlt.com/news/125002.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • golang 如何自动下载所有依赖包
    如何自动下载所有依赖包? 大部分情况下大家下载 Go 项目都是使用go get命令,它除了会下载指定的项目代码,还会去下载这个项目所依赖的所有项目。 但是有的时候我们的项目由于各种原...
    99+
    2024-04-02
  • CentOS 里下载 RPM 包及其所有依赖包
    CentOS 里下载 RPM 包及其所有依赖包 方法1 利用 Downloadonly 插件下载 RPM 软件包及其所有依赖包 我们可以通过 yum 命令的 Downloadonly 插件下载 RPM...
    99+
    2023-08-31
    centos linux 服务器
  • 怎样在CentOS里下载RPM包及其所有依赖
    怎样在CentOS里下载RPM包及其所有依赖,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们可以使用 curl 或者 wget  下载任何软件包,然而这些命令并不能...
    99+
    2023-06-16
  • golang依赖包如何管理
    在Go语言中,可以使用Go Modules来管理依赖包。Go Modules是Go 1.11版本引入的包管理工具,它可以帮助开发者更...
    99+
    2024-02-29
    golang
  • 解决没有rpm的困扰 CentOS7下载RPM及其所有的依赖包
    使用Downloadonly 插件下载 RPM 软件包及其所有依赖包以及利用yum进行所需要的rpm包下载,但在CentOS中没有安装yum相应工具的情况下需要先安装yun工具 建议:先修改yum源,一般我愿意使用阿里巴巴的源,修改yum源...
    99+
    2023-09-09
    linux 服务器 运维
  • Golang 构建所有下载的包
    哈喽!大家好,很高兴又见面了,我是编程网的一名作者,今天由我给大家带来一篇《Golang 构建所有下载的包》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面...
    99+
    2024-04-04
  • Python如何导出导入所有依赖包详解
    导出所有依赖包 整个环境的依赖包导出 进入项目目录,执行以下命令: pip freeze > requirements.txt 然后在当前目录是可以看到生成 “requ...
    99+
    2024-04-02
  • 如何在Python中导出导入所有依赖包
    今天就跟大家聊聊有关如何在Python中导出导入所有依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。导出所有依赖包整个环境的依赖包导出进入项目目录,执行以下命令:pip ...
    99+
    2023-06-15
  • 如何在golang中使用module依赖包
    今天就跟大家聊聊有关如何在golang中使用module依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。module介绍go module是go新的依赖包管理系统,go modu...
    99+
    2023-06-14
  • 可下载的依赖项如何辨别?
    从现在开始,努力学习吧!本文《可下载的依赖项如何辨别?》主要讲解了等等相关知识点,我会在编程网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!...
    99+
    2024-04-04
  • Node.js + imgcook如何自动生成依赖
    本篇内容介绍了“Node.js + imgcook如何自动生成依赖”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2024-04-02
  • 如何使用Python自动下载网站所有文件
    这篇文章给大家分享的是有关如何使用Python自动下载网站所有文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。假如一个网站,里面有很多链接,有指向文件的,有指向新链接的,新的链接点击进去后,仍然是有指向文件的,...
    99+
    2023-06-14
  • maven如何设置自动导入依赖
    Maven提供了一种自动导入依赖的机制,通过在pom.xml文件中配置依赖项,Maven会自动下载并导入所需的依赖项。要设置自动导入...
    99+
    2023-08-11
    maven
  • 如何避免使模块中的所有包都可用依赖项?
    问题内容 由于具有 .net 背景,我目前正在尝试将我的第一个 go 项目调整为更典型的 go 项目结构(与此类似)。我不明白的是,如何避免依赖项意外地进入不属于它们的包中。 假设我有...
    99+
    2024-02-06
  • maven下载依赖失败问题如何解决
    这篇“maven下载依赖失败问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“maven下载依赖失败问题如何解决”文...
    99+
    2023-07-06
  • 用Python自动下载网站所有文件
    目录总体思路: 判断链接是否指向文件: 下载文件: 获取 url 下的所有链接: 最近维基 jie mi 彻底公开了网站的全部文件,我就在想如何使用 Python 将其下载到本地永久...
    99+
    2024-04-02
  • maven本地仓库有依赖包,还会远程下载的问题
    遇见这样的问题,明明本地有需要的依赖包,但是maven还是会从远程仓库拉取,如果远程仓库有需要的包还好,如果没有,或者无网络环境下没法访问远程仓库,那就直接报错,走不下去了。 原因:在本地仓库的每个依赖包都存在这样的文件:_remote.r...
    99+
    2023-09-09
    maven java spring boot
  • 如何下载Golang的安装包
    Golang是一门开源的编程语言,由Google开发。在各个领域都有着广泛的应用,其高效性和简介性受到了开发者的青睐。安装好Golang,是进行相关开发的第一步。这篇文章将会告诉你如何下载Golang的安装包。在官网下载Golang官方网站...
    99+
    2023-05-14
    go语言 Golang
  • 如何用代码实现Python动态加载依赖
    今天就跟大家聊聊有关如何用代码实现Python动态加载依赖,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。前几天在一个开源项目里遇到好多用户反馈,不会安装依赖,或者执行 pip ins...
    99+
    2023-06-22
  • Python接口自动化浅析如何处理接口依赖
    在前面的Python接口自动化测试系列文章:Python接口自动化浅析logging封装及实战操作, 其中介绍了将logging常用配置放入yaml配置文件、logging日志封装及...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作