本文介绍: 本篇博客写了关于一个go语言初学者如何使用VScode搭建go语言项目过程,对初学者很友好,可以快速搭建起来一个go语言项目。如果不擅长配置的话可以使用goland,相对于goland来说,VScode搭建项目显得困难了许多。文中用到技术是GoModule

前言

VC code是一款巨好用编辑器使用vs code开发项目需要进行一些配置项目需要用到很多的包,无论是自己建的还是第三方的。由于go语言的生态环境没有javapython那样好,没有一个好的的包管理工具这给想用vs code开发golang项目同学带来了困扰,本篇博客写了关于一个go语言初学者如何使用VScode搭建go语言项目过程,对初学者很友好,可以快速的搭建起来一个go语言项目。如果不擅长配置的话可以使用goland,相对于goland来说,VScode搭建项目显得困难了许多。接下来就带大家了解一下如何没有集成开发环境下手刃一个go语言项目。

安装go语言环境

这个巨简单就不说了,大家可以网上检索一下教程

了解Go开发相关的环境变量

#GOROOT:GOROOT就是Go的安装目录,(类似于java的JDK)。不用往环境变量配置。包管理方式变成Go Module之后就用处不大了。
GOROOT = D:Go (你安装go环境目录)   
#GOPATH:GOPATH是我们工作空间保存go项目代码第三方依赖包。安装后,在环境变量中有。
GOPATH = %USERPROFILE%go
#配置代理加速(因为go语言用到的包大多数都在github)
GOPROXY=https://goproxy.cn,direct

熟悉Go Module

要使用go module 首先要设置GO111MODULE=on,GO111MODULE 有三个值,offonautoauto 会根据当前目录是否有 go.mod 文件判断是否使用 modules 功能。
平时 GO111MODULE = off,在需要使用的时候再开启,避免在已有项目中意外引入 go module。
命令set GO111MODULE=on
go env // 查看 GO111MODULE 选项on 代表修改成功
#初始化。先进入test项目下,然后执行命令,项目根目录会出现一个 go.mod 文件
go mod init test 
#检测依赖。tidy会检测该文件夹目录下所有引入的依赖,写入 go.mod 文件,写入后你会发现 go.mod 文件有所变动
go mod tidy 
#下载依赖。我们需要将依赖下载本地,而不是使用 go get
go mod download 
#导入依赖。此命令会将刚才下载至 GOPATH 下的依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下, 此时我们就可以使用这些依赖了
go mod vendor 
#依赖更新这里更新不是指版本的更新,而是指引入新依赖,依赖更新请从检测依赖部分一直执行即可:
go mod tidy
go mod download
go mod vendor

注:go mod vendor创建文件夹里面可以放用户自己的定制的包(放入后直接用包名就可以导入项目不需要相对路径

创建一个go项目

  1. 新建文件夹demo,作为项目根目录
  2. cmd执行命令:go mod init demo 此时会生成一个go.mod文件(存放项目依赖)
  3. vscode打开文件:选择项目根目录demo
  4. 新建main.go文件:在根目录下创建main.go文件
  5. 执行
    1. go mod tidy // 添加或者删除 modules,取决于依赖的引用 (执行完生成go.sum文件)
      注意是添加删除,用不好vendor内的自定义包就没有
    2. go mod vendor // 复制依赖到 vendor 目录下

如图

请添加图片描述
请添加图片描述
此时就可以放肆地开发了,自己定义的包要放在vendor目录下。不要随便使用go mod tidy命令,因为这个命令是检测当前目录的依赖,也就是main.go所在的目录,如果是你自己写了项目,并且有很多自定义包他很可能会给你移除掉。

项目迁移

项目中可能引用了大量的github第三方库,使用go mod tidy可以直接将所有的第三方库下载下来(前提是网络通畅)
本篇文章上面教过大家Go语言配置加速代理了,最好配置一下。

可以看一下下面的项目目录结构

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

原文地址:https://blog.csdn.net/apple_51931783/article/details/127805320

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11081.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注