golang 引入外部包的三种方式:go get, go module, vendor目录

本文介绍了在Go语言中如何解决import错误的问题,包括使用go get下载外部包、配置GoModule进行模块化管理以及利用govendor管理依赖。适用于不同版本的Go语言及开发工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import  "github.com/astaxie/beego"  编译出错解决方案:

go get:确保你的GOPATH是工程目录,代码在src目录下,然后在命令提示符中输入:go get github.com/astaxie/beego

          然后在本地的src下就生成了要引入的外部包。

          注意:在使用GoLand工具时,配置settings->Go->GOPATH->Project GOPATH为当前工程目录

go module:Go 的 1.11版本以上才能使用Go Module,1.13版本以下Go Module默认关闭,

        首先需要设置环境变量 set GO111MODULE=on

        在GOPATH的目录下,新建项目文件夹,进入新建路径执行go mod init,在文件夹下生成go.mod文件,

        然后将需要引入外部包的go文件置于项目目录下,编译文件,就会把外部包下载到本地的GOPATH/pkg/mod目录下

        注意:在使用GoLand工具时,不要配置Project GOPATH为当前工程目录,最好不要配置Project GOPATH,而是配置Module GOPATH

vendor目录:首先安装govendor : go get -u -v github.com/kardianos/govendor

          下载完,配置环境变量GOPATH/bin,键入命令govendor -version 检查是否安装成功

         在GOPATH/src的目录下,新建项目文件夹,进入新建路径执行gogovendor init,就会在文件夹下生成vendor/vendor.json,

         然后将需要引入外部包的go文件置于项目目录下,

        使用命令:govendor fetch github.com/golang/glog 将外部文件下载到本地vendor/下,并在vendor.json中添加该依赖包的信息,其中govendor fetch是从从远端库添加依赖包,而从 $GOPATH 中添加依赖包,使用govendor add

    

Go语言的第三方包管理机制经历了三个重要的阶段:GOPATH、VendorGo Module。 1. 第一阶段:GOPATH 在Go语言早期版本中,使用全局的GOPATH来管理所有的第三方包。GOPATH是一个环境变量,它指定了Go语言的工作目录。当我们使用go get命令下载第三方包时,它会被下载到GOPATH目录下的src、pkg和bin目录中。这种方式的缺点是所有的项目都共享同一个GOPATH,当不同项目使用同一个第三方包的不同版本时,会出现冲突。 2. 第二阶段:Vendor 为了解决GOPATH的缺点,Go语言引入Vendor机制。Vendor机制将项目的依赖包局部化,每个项目都有自己的Vendor目录,用于存放项目所依赖的第三方包。当我们使用go get命令下载第三方包时,它会被下载到项目的Vendor目录中。这种方式的缺点是当我们需要更新第三方包时,需要手动更新Vendor目录中的包。 3. 第三阶段:Go Module Go语言的最新功能Go Module是一种更加先进的第三方包管理机制。它将每个项目都看作一个独立的模块,每个模块都有自己的go.mod文件,用于记录项目所依赖的第三方包及其版本信息。当我们使用go get命令下载第三方包时,它会被下载到项目的go.mod文件中指定的目录中。这种方式的优点是可以自动管理第三方包的版本,当我们需要更新第三方包时,只需要修改go.mod文件中的版本信息即可。 以下是一个使用Go Module管理第三方包的例子: 1. 创建一个新的项目目录,并初始化Go Module: ``` mkdir myproject cd myproject go mod init example.com/myproject ``` 2. 在项目中使用第三方包: ``` import "github.com/go-redis/redis" ``` 3. 下载第三方包: ``` go get github.com/go-redis/redis ``` 4. 查看项目依赖的第三方包: ``` go list -m all ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值