最近在积极的转入go后端开发,学习gin的时候,能够编译运行,但是在improt github.com/gin-gonic/gin 波浪警告

  • 当时忘记截图了,类似于这样的波浪警告



    内容大概是“can not find in any of...” 就是说找不到引入的这个 github.com/gin-gonic/gin 。

    显示查找的路径是在原来go path 开发环境下我配置的GOPATH环境变GOROOT环境变量下的src/github.com/gin-gonic/gin,,因为开了go mod 模式,并且已经go get github.com/gin-gonic/gin 所以是能够编译运行成功的。但是警告太扎眼了,同时感觉自己没有摸清楚go mod 的包管理模式和go path的使用,于是查了写资料,理解了一下,最终解决了警告。

第一步,卸载windows上的GO原有的开发环境

  1. 可以双击安装包就会有卸载选项,或者直接删掉安装目录。
  2. 【重要】把之前安装go并且搭建vs code 开发环境的时候配置的GOPATH、GOROOT、GOBIN环境变量有一个算一个都删掉。
  3. 下载最新版的go环境windows 安装包,双击安装,一路无脑accept下一步,安装包会帮我们配置好环境变量。

第二步,开启go mod, 配置代理

  1. 因为的卸载操作以及删除环境变量操作,会将我们之前配置的VS GO PATH 开发模式给删除掉,现在我们初始化之后,首先开启go mod 模式,配置代理,方便下载工具,cmd执行下面两行代码

    go env -w GO111MODULE=on

    go env -w GOPROXY=https://goproxy.io,direct

    没报错的话,就已经成功开启了go mod了

第三步,建一个GOBIN目录,存放你的编译出来的可执行代码

这里是唯一需要配置的环境变量,因为我们在根据提示安vs 提示的一些插件或者引入的包的时候,需要一个绝对路径(报错提示大致是:GOBIN need a absolute path),好吧,安装包默认给我们配置的是%user..%,好像vs他不认还是什么情况,新建一个绝对路径的GOBIN环境变量,它就能愉快的使用了:



我们可以看到GOPATH是安装包自己帮我们配好了,我们就加一个下面箭头指的GOBIN就好,我也设置到默认的go文件夹下了



这里也改一下,改成下面这样:



改完之后记得保存。

保存好了之后,任意文件目录下就可以开始开发了

  1. 记得新建目录之后要

    go mod init anyNameYouLike

    go mod tindy
  2. 让go mod 初始化 并且加载你引入的对应包(就像你使用git 一样,是不是需要首先git init)
  3. 根据vs提示,点击install all 安装对应插件和包
  4. 安装完成之后,okk~警告消失。

go mod 开发模式总结,以及与go path 开发模式开发对比

go path 开发模式就像之前的,先选择开发目录路径,比如配置环境变量,GOPATH:D:\Go,GOROOT,......

再建三个目录

D:\Go\src,作为存放项目代码的目录,使用git控制版本

D:\Go\bin,会自动存放编译后的可执行文件

D:\Go\mod,会存放引入的一些三防包

存在的弊端是,D:\Go\src之中各项目会有可能出现引入包的版本冲突,还有就是开了go mod 之后可能出现目录层级配置不对的话,像我那样能编译,能执行,就是引入包报错警告。

所以干脆初始化go 的开发环境,全转成go mod 来管理包(也是官方推荐的)

改成go mod 模式之后,相当于你在任意位置的任意目录go mod init 之后,这里就类似于之前 你go path 模式下的src文件夹,go mod 会帮助我们做好版本控制和包引入安装管理,我们就愉快的开发代码就好,省心高效。

就像下面我的go目录,可以在任意位置,不用再配置bin和mod了,go mod 会在默认位置帮我们做好包管理

我们做好自己代码的版本控制就好,其他的交给助手go mod

ok~继续愉快的撸代码吧。

windows 环境下vs code配置go mod 包管理进行开发,终于解决go mod 模式下可以编译运行,但引入包"github.com/gin-gonic/gin"的飘红黄波浪警告的更多相关文章

  1. Gradle在Windows环境与Linux上配置有哪些不同?

    我的开发环境:Windows + Android Studio + Gradle 2.8 all + Jenkins 公司CI 服务器环境: Linux + Gradle 2.10 bin + Jen ...

  2. 解决 php7 cli 模式下中文乱码的两中方法

    解决 php7 cli 模式下中文乱码的两中方法1. 给PHP文件开头加上 exec('chcp 936'); 然后把该文件以 ANSI 格式编码2. 在 php.ini 中设置 default_ch ...

  3. Mac下SVN服务器环境的搭建和配置(除展示图片外,所有命令在Linux/Unix下适用)

    这几天领导没有安排工作,闲着没事就想把自己这两年做iOS开发时感觉知识有欠缺的地方想好好深入地补习一下,昨天和今天就计划好好学习下SVN和git的从创建和到原理,到命令,到界面的使用.一不小心被另一领 ...

  4. Go(02)windows环境搭建和vscode配置

    之前讲述过linux环境下Go语言开发环境搭建,这次简述下windows的搭建以及vscode配置 windows环境搭建 同样去https://studygolang.com/dl下载windows ...

  5. Windows环境双系统安装环境配置

    (最惊喜的事情莫过于...在安装系统完成重新试图安装Docker时解决了关于HyperV的问题,结果提示Docker只能在Win10 Pro或者Enterprise环境下运行...我很坚强...可以按 ...

  6. 使用choco 在windows 环境安装kubectl 并配置

    首先安装choco #以管理员身份运行cmd命令 @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -N ...

  7. 正确配置jstl的maven依赖,jar包冲突的问题终于解决啦

    困扰了两天的问题,非常头疼,今天终于有了解决思路了,说到底,还是对maven不够了解吧.总是抱怨maven不好用,出现各种无厘头的问题,原来这些都是归于对它不够了解不够熟悉,它提供了很好的解决思路,只 ...

  8. 解决UEFI启动模式下无法使用U盘启动WIN7安装界面

    问题场景 现在很多人都习惯使用U盘进行安装系统,主要是快捷方便.本文主要是讲解一下U盘在UEFI模式下无法启动Windows7安装界面的问题,可能很多人会说使用PE系统进行安装,但是因为我的主板只有独 ...

  9. 终于解决了一个Win7 下 VS 编译的问题,困扰了我好几个月

    用 Win7 一年多了,一直在这个环境下编程,其他都挺好,就是有个问题非常恶心,在VS下编译经常出现进程正在使用,无法覆盖的错误,这个问题我记得博问中以前也有其他人遇到过,也没有解决掉.此问题困扰了我 ...

  10. 解决Redis Cluster模式下的排序问题

    通常的redis排序我们可以这么做: 比如按商品价格排序:sort goods_id_set by p_*_price 这样在非集群模式下是没问题的,但如果在集群模式下,就会报错: 说是在集群模式下不 ...

随机推荐

  1. VulNyx-Secrets

    扫端口 扫描80端口发现有个secrets目录 还有个注释 继续扫发现http://192.168.200.11/secrets/login_form.php 有这个登录框 估计就是要爆破 usern ...

  2. react声明周期详解

    react的生命周期,分为3三个阶段, 挂载阶段 constructor(){} UNSAFE_componentWillMount(){} == componentWillMount(在17版本中将 ...

  3. 【小记】在 Google Colab 等平台上运行 GPU 容器

    最近想到了可能的创新点,准备开始做实验了.咱想先在 Colab 这种提供免费 GPU 算力的平台上跑一些小实验,后续再转移到实验室机器上. 如果每次都要重复搭建环境多少有些麻烦了. 那咱用容器化技术不 ...

  4. FLink17--全窗口聚合方法1--ApplyWindowApp

    一.依赖 二.代码 package net.xdclass.class11; import java.util.List; import java.util.stream.Collectors; im ...

  5. Hetao P1169 点集 题解 [ 黄 ][ 线性dp ]

    点集 题解 一道非常傻逼,非常傻逼的暴力题,一点都不优雅,这能放普及 T4 真是开了眼了. 本题难点主要就是在时间复杂度的计算上,只要算对了并且有勇气去打就能 AC . 首先发现能形成一个点集,当且仅 ...

  6. Log4j2 Garbage-free 无垃圾回收模式实践与总结

    Log4j2 内置 Garbage-free(无垃圾)模式,可重用对象和缓冲区,减少日志记录时产生的垃圾对象,避免 JVM 进行 GC 回收,进而提升应用程序的性能与响应速度.以下以 Log4j2 的 ...

  7. 割以咏志:Stoer–Wagner 算法求解全局最小割

    全局最小割问题(Global Min-Cut Problem)是图论中的一个经典问题,旨在通过切割图中的边来划分图的顶点集合.具体来说,给定一个加权无向图 $ G = (V, E) $,图中每条边 $ ...

  8. 在GitHub上部署个人静态网站

    在GitHub上部署个人静态网站 首先将网站设置文件上传到github的一个新建仓库,并公开仓库(会员可不用公开) 找到settings(设置)-page(页面)选项并进入 选择分支(root)并sa ...

  9. android短信数据库监听回调多次问题

    在监听android短信数据库变化时.由于只能注册content://sms/ 的observer.所以,在数据库每次状态变化的时候,都会多次回调 onChange 方式.目前还未找到很好的方式,解决 ...

  10. Python 脚本编写指南:从框架到实践

    一.引言 Python 作为一种强大且易于学习的编程语言,在各个领域都有着广泛的应用.编写 Python 脚本是实现各种功能和任务的常见方式. 二.Python 脚本框架的基本组成部分 导入必要的模块 ...