解决go build不去vendor下查找包的问题
gobuild报错:
main.go:5:2:cannotfindpackage“gopkg.in/go-playground/validator.v9”inanyof:
/usr/local/go/src/gopkg.in/go-playground/validator.v9(from$GOROOT)
/root/work/testjdcloud/src/gopkg.in/go-playground/validator.v9(from$GOPATH)
但是为什么没有去vendor下找呢?
确认了下,是目录结构的问题,可以查找vendor的目录结构是
test|
|src|
||test|
|||main.go
|||vendor
也就是说,需要在src下面再有一层目录
补充:gobuildcannotfindpackage问题
问题描述
使用gobuild编译*.go程序是找不到package。
窗口信息如下:
$GOPATH>gobuildstacker.go stacker.go:18:2:cannotfindpackage“stack”inanyof: D:\Go\src\stack(from$GOROOT) $GOPATH\src\stack(from$GOPATH) $GOPATH>goversion goversiongo1.11.2windows/amd64
解决问题思路
感觉应该是GOPATH环境变量没有设置对。
问题分析
gobuild提示在srcstack目录下找不到相应到库文件。
stacker.go的package内容大致如下
packagemain import( "fmt" "stacker/stack" "strings" )
所以尝试修改$GOPATH为src同级目录,再使用gobuildstacker.go编译就可以正常找到相应的stackpackage.
问题总结
go编译器默认会在当前目录中查找src目录下package。如果没有src目录,编译器就找不到相应的package。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。