Go外部依赖包从vendor、$GOPATH和$GOPATH/pkg/mod下的查找顺序(包管理)

问题:

     今天运行rsdnstools时碰到问题,编译go程序时候,不去自己的vendor或者gopath里面找包,却直接去GOROOT里面找需要的包,查找资料发现的问题,GOPATH可能是要淘汰的功能了,以后有时间研究一下!!!

 

GO111MODULE=off,go会从vendor和GOPATH寻找包
GO111MODULE=on,go不会从vendor和GOPATH寻找包,直接加载go. mod加载包

  • 通过vendor 编译
    0:GO111MODULE=off
    1:go get -u -v github. com/kardianos/govendor
    2:govendor add +e(生成vendor文件)
    3:go build main. go

  • 通过mod编译
    0:GO111MODULE=on
    1:go mod init (生成go.mod文件)
    2:go build main. go

  • 通过glide文件
    0:GO111MODULE=off
    1:brew install glide (mac需要安装)
    2:glide init (生成glide.yaml)
    3:glide install
    4:go build main. go

 

添加环境变量:[这里直接不配置GOPATH路径了,在linux上为$HOME/go,我使用root用户,所以目录为/root/go]

vim /etc/profile 加入以下三行到文件最后面

export GO111MODULE=on 
export GOROOT=/opt/go 
export PATH=$PATH:$GOROOT/bin

说明:export GO111MODULE=on是Go1.11中使用modules的一个开关,就是没有强制直接使用modules工具,毕竟也是新出来的;它有三个值auto、on、off;默认为auto,如果为空就是关闭,因为要使用它所以我直接在全局中加入此参数;

使配置生效;

source /etc/profile

查看当前的Go env,可以看到GO111MODULE状态

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值