使用Goland IDE创建Go项目,使用vendor管理外部引用的包,但是在import包名的时候却显示找不到目录资源。
file --> settings -->Go-->GOPATH-->Project GOPATH 中添加当前项目的项目,必须是src的上层目录
Posted perfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang vendor相关的知识,希望对你有一定的参考价值。
Go 1.5引入了vendor文件夹,其对语言使用,go命令没有任何影响。若某个路径下边包含vendor文件夹,则在某处引用包时,会优先搜索vendor文件夹下的包。
在Go 1.5开启该项特性需设置GO15VENDOREXPERIMENT=1,而从Go 1.6开始,该项特性默认开启。
go get -u -v github.com/kardianos/govendor
如果一个包在vendor和GOPATH下面都存在那么谁会优先使用呢。
优先使用vendor目录下面的包。
如果vendor下面没有搜索到,再搜索GOPATH下面的包。
要么完整使用vendor下面的包,要么完整使用GOPATH下面的包,不会混合使用:
3.1 vendor搜索方式 vendor包的搜索方式为:自包引用处,从其所在文件夹查询是否有vendor文件夹包含所引用包;若没有,然后从其所在文件夹的上层文件夹寻找是否有vendor文件夹包含所引用包,若没有,则再搜索上层文件夹的上层文件夹...,直至搜索至$GOPATH/src并搜索完成时止。 例如,如下代码中,$GOPATH/src/x/y/z/main.go引用了包"v",则不论vendor/v/v.go置于src/,src/x/,src/x/y/,src/x/y/z/中任意一个文件夹下,均可以找到。 $ cat $GOPATH/src/x/y/z/main.go
gopm 可以将项目中的包直接下载到vendor
https://www.jianshu.com/p/db9e6ae0d227
go get -u github.com/gpmgo/gopm
用gopm get -g代替go get
不采用-g参数,会把依赖包下载.vendor目录下面;
采用-g 参数,可以把依赖包下载到GOPATH目录中;
使用Goland IDE创建Go项目,使用vendor管理外部引用的包,但是在import包名的时候却显示找不到目录资源。
file --> settings -->Go-->GOPATH-->Project GOPATH 中添加当前项目的项目,必须是src的上层目录
以上是关于golang vendor的主要内容,如果未能解决你的问题,请参考以下文章