解决go build不去vendor下查找包的问题

go build 报错:

main.go:5:2: cannot find package “gopkg.in/go-playground/validator.v9” in any of:

/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下面再有一层目录

补充:go build cannot find package 问题

问题描述

使用go build 编译*.go 程序是找不到package。

窗口信息如下:

$GOPATH>go build stacker.go
stacker.go:18:2: cannot find package “stack” in any of:
D:\Go\src\stack (from $GOROOT)
$GOPATH\src\stack (from $GOPATH)
$GOPATH>go version
go version go1.11.2 windows/amd64

解决问题思路

感觉应该是GOPATH环境变量没有设置对。

问题分析

go build 提示在src stack 目录下找不到相应到库文件。

stacker.go的package内容大致如下

package main
import (
 "fmt"
 "stacker/stack"
 "strings"
)

所以尝试修改$GOPATH为src同级目录,再使用go build stacker.go 编译就可以正常找到相应的stack package.

问题总结

go 编译器默认会在当前目录中查找src目录下package。如果没有src目录,编译器就找不到相应的package。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • go install/build生成的文件命名和路径操作

    1. 写在前面 本文主要讨论go install/build命令生成的文件命令和生成路径问题.将从两种情况讨论: 文件夹下只有一个"命令源码文件" 文件夹下既有命令源码文件还有其他源码文件 以下实验主要在windows环境下完成呢,所以生成的可执行文件以.exe后缀结尾 2. 文件夹下只有一个"命令源码文件" 假设一个简单的命令源码文件所在的工程组织如下所示: |__ src     |__ jeekTimeProject         |__ test     

  • 浅谈go build后加文件和目录的区别

    如下: go build + xxx.go:生成以xxx命名的可执行文件 go build + dir / go build . / go build:生成以目录名命名的可执行文件 补充:golang学习------golang的目录管理以及go install,go build的使用 一个优秀的项目离不开良好的代码管理,golang通过package提供一些代码的管理封装,那么我们应该如何来设计我们的代码结构呢? 我们假设我们需要完成一个项目,项目的功能如下: 在基于package的目录思路下

  • go build 通过文件名后缀实现不同平台的条件编译操作

    go build 可以通过标签或者文件名的后缀来提供条件编译,这里说下通过文件名的后缀来提供条件编译 文件命名约定可以在go build 包里找到详细的说明,简单来说,就是源文件包含后缀:_$GOOS.go,那么这个源文件只会在这个平台下编译,_$GOARCH.go也是如此. 这两个后缀可以结合在一起使用,但是要注意顺序:_$GOOS_$GOARCH.go,不能反过来用:_$GOARCH_$GOOS.go 例如下面截图,这些文件定义了对应不同平台下是否需要编译. 补充:Golang: 条件和循环

  • go build和go install的区别介绍

    go build: go build 用于编译包生成可执行文件,必须有main包才可以 go install: go install 的作用有两个:主要用来生成库和工具,(如果有main包)编译后生成的可执行工具文件放到 bin 目录.$GOPATH/bin,编译后的库文件放到 pkg 目录下($GOPATH/pkg) 补充:go build 命令 简介 1.用于编译源码文件或代码包 -编译非命令源码文件不会产生任何结果文件 -编译命令源码文件会在该命令的执行目录中生成一个可执行文件 2.执行该

  • 解决go build不去vendor下查找包的问题

    go build 报错: main.go:5:2: cannot find package "gopkg.in/go-playground/validator.v9" in any of: /usr/local/go/src/gopkg.in/go-playground/validator.v9 (from $GOROOT) /root/work/testjdcloud/src/gopkg.in/go-playground/validator.v9 (from $GOPATH) 但是为

  • 解决vue 打包发布去#和页面空白的问题

    1.vue项目中config文件下index.js中打包配置 build: { // Template for index.html index: path.resolve(__dirname, '../yiTownWebApp/index.html'), // Paths assetsRoot: path.resolve(__dirname, '../yiTownWebApp'), assetsSubDirectory: 'static', assetsPublicPath: '/yiTown

  • 解决maven build 无反应,直接terminated的问题

    今天碰到一个很坑的问题,折腾了五六个小时,网上也收不到答案,国外有哥们碰到了,但是看到有解决方法的回复,废话不多说了. 现象: 运行maven build ,console 中没有任何输出,运行maven  install 也是没有任何输出. 首先检查maven 是否安装正确,mvn -v Maven home: D:\apache-maven-3.5.0\bin\.. Java version: 1.8.0_131, vendor: Oracle Corporation Java home:

  • 解决vue-cli脚手架打包后vendor文件过大的问题

    大家会遇到打包后文件很大,导致页面初始化加载的速度很慢.会出现白屏的现象.这一般是你打包的vendor太大的缘故.如果你打包后看到你的vendor文件有700kb以上.你就要考虑怎么处理. 处理这种文件的 1.把不常改变的库放到index.html中,通过cdn引入,比如下面这样: <script src="https://unpkg.com/vue@2.5.2/dist/vue.js"></script> <script src="https:

  • jQuery基于随机数解决中午吃什么去哪吃问题示例

    本文实例讲述了jQuery基于随机数解决中午吃什么去哪吃问题.分享给大家供大家参考,具体如下: 一个解决中午吃什么去哪吃的程序 这下不用每天都纠结吃什么了! 代码功能类似于前面一篇<jQuery实现的老虎机跑动效果>,很有意思 例一: <html> <head> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <style

  • 在mac下查找python包存放路径site-packages的实现方法

    想查找mac下python的site-packages目录,如果用网上搜的安装目录之类的去找,进去每一层很多都是软链接形式存在,比较浪费时间: 比较快捷的方法如下: MacBook-Pro-6:Scrapy-1.5.0 haizhi$ python Python 2.7.10 (default, Jul 30 2016, 18:31:42) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin Type "help&

  • 解决Jupyter Notebook开始菜单栏Anaconda下消失的问题

    出现的问题状况是:在Anaconda文件下,少了Jupyter Notebook快捷键,不然每次都要打开Anaconda Navigator再打开Jupyter Noterbook,有点麻烦.为了避免将Anaconda软件卸载重装才出现Jupyter Notebook,就去寻找解决办法. 首先,进入Anaconda3的安装目录下,一般为C:\Users\Administrator(为用户名)\Anaconda3 找到python.exe文件,将python.exe发送到桌面快捷方式 通过Anac

  • 解决idea打包成功但是resource下的文件没有成功的问题

    如下所示: 1 需要在project structure中的Artifacts下的项目classes文件夹下添加Directory Content,地址指向resource文件夹. 2 因为 resource(s)目录也是classpath啊,打包之后和src目录一样,里面的文件都会放在classes目录下面. 补充知识:IDEA打jar包没有将resource打包解决方法 在pom文件中添加配置 <build> <resources> <resource> <d

  • 解决Mysql5.7.17在windows下安装启动时提示不成功问题

    在机器上首次安装MySQL, 操作系统是win7 mysql 的安装文件是 zip 格式的,版本是5.7.17 解压之后,安装步骤是 1.首先找个文件存放这些安装程序以及 数据 假设是E:\\mysql 2.把解压的文件放在E:\\mysql下,并且新建个data文件夹 3.创建环境变量mysql  路径是E:\\mysql 添加到path 中  %MYSQL%\bin; 4.在解压的文件夹下有个my-default.ini 的文件,首先拷贝一份,重命名为my.ini 修改文件内容 只修改两行就

  • 完美解决android M上锁屏情况下,禁止pc通过MTP访问手机存储单元

    1.问题解决主要文件:/m8976/packages/providers/MediaProvider/src/com/android/providers/media/MtpService.java 需要在MtpService.java中updateDisabledStateLocked 方法添加锁屏情况限制: final KeyguardManager keyguardManager = (KeyguardManager) getSystemService( Context.KEYGUARD_S

随机推荐