golang 第三方包的使用总结

蹲街弑〆低调 提交于 2020-02-29 05:59:47

golang 第三方包的安装的方法:

1. go get 安装

# 比如要安装 "github.com/gin-gonic/gin"
$ go get github.com/gin-gonic/gin
  • 注意:执行go get 命令需要先安装git命令,并配置git全局变量。

2. 源码包安装

由于国内网络问题,很多时候go get命令并不能安装,所以就需要手动下载源码包,然后拷贝到$GOPATH/sr/ 目录下

# 比如要安装"github.com/golang/protobuf/proto"
# 去github.com/golang/protobuf下载源码包,
# 拷贝到 $GOPATH/src/github.com/golang/protobuf

$ cd $GOPATH/src/github.com/golang/protobuf
$ go install
  • 注意:第三包安装完成后,应用程序导入包时还是使用的源码,而非 $GOPATH/pkg/ 下的 .a文件。如何能像标准包fmt一样直接使用pkg,还需进一步研究。
  • 注意:上面直接写的$GOPATH,在 GOPATH 只有一个目录的时候可以这样写,按tab键就会自动切换为实际目录,如果 GOPATH 配置了多个目录则要输入具体的目录。

golang 使用第三方包

使用方式

在应用程序中直接impor即可

// 比如要使用  "github.com/gin-gonic/gin"
import "github.com/gin-gonic/gin"
  • 注意:GO 和Java 不同的是:所有import的包必须在%GOPATH路径下,如果直接导入源码路径下的包,编译会报错。因为GO只会在$GOPATH 下找包的依赖,而不会在当前工程下找。

golang 增加环境变量

很多时候我们并不希望自己的工程代码和下载的第三方包代码混在一起,这时候就想自己建一个目录,但是我们知道,执行go install 的时候,必须在 $GOPATH 路径下,所以我们要将自己的自己新建的目录加入到$GOPATH中。比如我在/home/jerry/go/ 下面建了src/ 目录,里面放的是我自己写的包 myMax/myMax.go

# 使用 vim 打开 ~/.bash 文件
$ vim ~/.bash
# 在里面添加刚才自己新建的工作目录
export GOPATH=$GOPATH:/home/jerry/go/
# 退出 vim 并让更改立即生效
$ source ~/.bash
# 安装自己的包, 发现不会报错了
$ cd ~/go/src/myMax/
$ go install

包管理工具 govendor 的安装

按照上面的方法按照,安装完以后再$GOPATH/bin/目录下就可看到有一个govendor文件

$ ll ~/workspace/bin/
-rwxrwxr-x 1 jerry jerry 13146288 Jul 23 04:44 govendor*
# 将govendor 添加到环境变量
$ vim ~/.bash
# 在vim文件中添加
export PATH=$PATH:/home/jerry/workspace/bin/
$ source ~/.bash

govendor 的使用

进过前面的配置,我们现在已经可以在自己的目录下使用govendor命令了。

$ cd ~/go/src/myMax/
# 生成vendor目录,生成vendor.jso
$ govendor init
$ cat vendor/vendor.json 
{
	"comment": "",
	"ignore": "test",
	"package": [],
	"rootPath": "myMax"
}

添加依赖包到vendor目录下

# govendor add +e 也可以
$ govendor add +external

理解golang包导入

https://www.cnblogs.com/sevenyuan/p/4548748.html

  1. 在使用第三方包的时候,实际上是链接了以该最新源码编译的临时目录下的.a文件。
  2. import后面的最后一个元素应该是路径,就是目录,并非包名。
  3. fmt.Println()中的fmt则是包名。
  4. import m "lib/math" 中的m是包名。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!