Go Module的基本使用

news2024/11/20 20:43:27

go module是类似于java中的maven,是包的管理工具,在没有这个go module之前,都是配置本地的GOPATH,创建的每个项目也都必须创建在这个GOPATHsrc目录下,且项目的go文件不能重名
go module是在go1.1.1版本推出的

开启go module

在本地上打开终端执行go env
在这里插入图片描述
可看到环境的相关配置:

GO111MODULE:默认是为空,有三个值,on(开启),off(关闭),auto(自动)
GOPROXY:配置下载包的地址,我们可以更换为国内镜像源

  • 执行 go env -w GO111MODULE=on设置go module为开启状态
  • 设置为国内镜像源,这是由国内七牛云提供 go env -w GOPROXY=https://goproxy.cn,direct

这样go module就开启好了,开启之后如何使用?先执行go mod help,不管在学什么只要是有命令行的,先执行help命令。
在这里插入图片描述

可看到其中是有初始化命令,而go module是用来管理项目的第三方包的,所以我们可以创建一个文件夹,在文件夹中初始化
在这里插入图片描述

可看出新的文件 go.mod

用goland打开项目

(1)设置镜像地址

不设置的话会报exec: “git”: executable file not found in %PATH%一.git
在这里插入图片描述

(2)导入Gin包检查go module是否使用正常
go get -u github.com/gin-gonic/gin
PS C:\Users\X\Desktop\waodaoxr> go get -u github.com/gin-gonic/gin
go: downloading golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
go: downloading github.com/goccy/go-json v0.9.7
go: downloading github.com/pelletier/go-toml/v2 v2.0.1
go: downloading google.golang.org/protobuf v1.28.0
go: downloading github.com/go-playground/validator/v10 v10.10.0
go: downloading github.com/pelletier/go-toml v1.9.5
go: downloading github.com/pelletier/go-toml/v2 v2.0.6
go: downloading github.com/go-playground/validator/v10 v10.11.1
go: downloading github.com/goccy/go-json v0.9.11
go: downloading golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069
go: downloading github.com/go-playground/validator v9.31.0+incompatible
go: downloading github.com/ugorji/go v1.2.7
go: downloading golang.org/x/net v0.2.0
go: downloading golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97
go: downloading github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
go: downloading golang.org/x/crypto v0.3.0
go: downloading golang.org/x/sys v0.2.0
go: downloading golang.org/x/text v0.4.0
go: added github.com/gin-contrib/sse v0.1.0
go: added github.com/gin-gonic/gin v1.8.1
go: added github.com/go-playground/locales v0.14.0
go: added github.com/go-playground/universal-translator v0.18.0
go: added github.com/go-playground/validator/v10 v10.11.1
go: added github.com/goccy/go-json v0.9.11
go: added github.com/json-iterator/go v1.1.12
go: added github.com/leodido/go-urn v1.2.1
go: added github.com/mattn/go-isatty v0.0.16
go: added github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: added github.com/modern-go/reflect2 v1.0.2
go: added github.com/pelletier/go-toml/v2 v2.0.6
go: added github.com/ugorji/go/codec v1.2.7
go: added golang.org/x/crypto v0.3.0
go: added golang.org/x/net v0.2.0
go: added golang.org/x/sys v0.2.0
go: added golang.org/x/text v0.4.0
go: added google.golang.org/protobuf v1.28.1
go: added gopkg.in/yaml.v2 v2.4.0
PS C:\Users\X\Desktop\waodaoxr>

下载成功,可查看上面初始化创建的go.mod文件,可看到导入了一些包

(3)使用Gin
package main

import  "github.com/gin-gonic/gin"
func main()  {
	engine := gin.Default()
	engine.GET("/test", func(context *gin.Context) {
		context.JSON(200,gin.H{
			"message":"the project is test module gin",
		})
	})
	engine.Run()
}


(4)执行、发送请求

在这里插入图片描述

go module的基本命令

(1)go mod init 项目名称:初始化命令
(2)go mod download : 下载modules到本地cache,路径是go env中的GOMODCACHE,跟java的maven,也就是你的本地仓库
(3)go mod tidy : 添加缺失或删除没有使用的包
(4)go mod verify:验证依赖是否正确
(5)go mod why:查找依赖
(6)go mod edit:可执行go help mod edit查看用法,也可到官网查看,主要也是用来操作go.mod文件的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/29040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

装配式施工在建筑装修中的应用研究

目 录 摘 要 I Abstract II 1引言 1 2装配式施工在建筑装修中的发展背景及现状 2 2.1装配式施工在建筑装修中的发展背景 2 2.2建筑装饰行业现状 2 3装配式施工在建筑装修中体系的主要特点 3 4装配式施工在建筑装修中体系的构成 4 4.1八大系统 4 4.1.1集成卫浴系统 4 4.1.2集成厨…

【App自动化测试】(二)Appium环境部署

目录1. Appium生态工具2. Appium环境安装部署2.1 Appium 环境依赖说明2.2 第一步:安装JDK2.3 第二步:安装SDK2.4 第三步:安装Appium2.5 第四步:安装appium python client2.6 第五步:安装appium-doctor检测appium的安装…

Metabase学习教程:视图-1

你应该用哪个图表? 您应该使用哪种类型的图表和图表来最好地传达来自数据的见解?这将有助于你选择正确的工作。 选择正确的图表可以归结为两个问题:数据是什么样子的,以及您试图传达什么? 让Metabase为您选择图表 …

Day01-网页结构分析

网页结构分析 一 前言 姓名:陈云 TEL:18571593511 企业用人的两个标准 1.能干活,见到需求能反应出粗线条实施计划,起手实施后能自主预判和解决坑点,直至完成. 2.对某些敏感点理解较准确,有一定潜质做个性化封装和技术选型工作,应对突发状况,避免生…

SpringBoot--通过JSON传递请求参数--方法/实例

原文网址:SpringBoot--通过JSON传递请求参数--方法/实例_IT利刃出鞘的博客-CSDN博客 简介 本文用示例介绍SpringMVC如何通过JSON格式传递入参。 JSON格式使用post方式来请求,即:对应的注解为:PostMapping。 PostMapping注解的方法…

Vue学习笔记

课程来源:https://www.bilibili.com/video/BV1Zy4y1K7SH?p4&vd_source6f37192b213c98639a87ec77b26d105d 学习计划:一天学10节,从第四节开始做笔记,预计16天完成(完成日期2022年12月7日) 目录&#…

【1】Anaconda基本命令以及相关工具:jupyter、numpy、Matplotilb

目录 一、Anaconda ◼ anaconda命令行操作 二、jupyter notebook 1 jupyter的基础使用 ◼ jupyter的启动 ◼ ipynb文件的新建、重命名、删除 ◼ 菜单说明 ◼ 运行cell单元块 ◼ 编写文档笔记 2 jupyter的高级使用:常用魔法命令 ◼ writefile pycat run …

【Golang】来用GoLand开发第一个Go程序

​ 📓推荐网站(不断完善中):个人博客 ​ 📌个人主页:个人主页 ​ 👉相关专栏:CSDN专栏、个人专栏 ​ 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚 文章目录&#x1f34a…

【JAVA程序设计】基于JAVA的坦克大战小游戏--入门级小游戏

基于JAVA的坦克大战小游戏--入门级小游戏零、项目获取一、项目简介二、开发环境三、游戏玩法四、运行截图零、项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可以确保100%成功运行。 一、项目简介 本项目是基于…

基于Java+Spring+Strusts2+Hibernate 社区智慧养老服务平台 系统设计与实现

一.项目介绍 本系统分为前端 和 后端 两块, 前端包括:首页、健康新闻、疾病预防、养生之道、动态通知、登录和注册 各模块的文章点击查看,支持评论以及回复功能, 登录成功之后点击欢迎您:后面的账号即可进入后台管理 后端包括&…

老杨说运维 | 非常重要,事关转型

《荀子》有云:“水能载舟,亦能覆舟。”在公司日常运营过程中,数据指标就像是水,孕育着生命,承载着万物。科学的数据指标能指引公司在正确的道路上不断前进,使平淡无常的业务焕发新生,而不合理的…

Qt QUndoStack、QUndoCommand(实现撤回和回撤)

用到的类: 1 QUndoStack: 一个存放 QUndoCommand 命令的栈. 2 QUndoCommand:The QUndoCommand class is the base class of all commands stored on a QUndoStack. 3 QUndoView:The QUndoView class displays the contents of a QUndoStack.&…

C#上位机系列(3)—定时器和串口的介绍

本文是讲解C#.net平台的Winform框架下的第三个内容,手把手介绍上位机项目的创建方式以及一些写软件时常用的功能,讲解从零开始的每一个步骤。 本次介绍上位机中定时器的使用和串口的配置 定时器:每过一段设定好的时间进入执行函数&#xff…

SIMULIA现实仿真解决方案 SIMULIA仿真模拟应用程序

由 3DEXPERIENCE 平台提供技术支持,SIMULIA 可提供仿真模拟应用程序,这些应用程序使用户能够探究现实生活中产品、自然和生命的行为 SIMULIA 通过虚拟测试实现性能要求促进协作。其产品组合提供强大的工具,能够对采用V6设计的零件、组件和产…

敏捷开发失败的五个原因以及解决方案

作者:David Bevans , Mendix公司高级内容营销经理 敏捷开发是一个可以改变软件交付方式的框架且效果十分惊人,但鉴于需要反复不断规划、测试、集成以及其他进行中的开发方式,敏捷开发在某些情况下行不通。下文将对常见的敏捷开发失灵以及相应…

菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素,CY3/CY5/CY7-Streptavidin/Insulin

产品名称:菁染料CY3/CY5/CY7标记链霉亲和素/胰岛素 英文名称:CY3/CY5/CY7-Streptavidin/Insulin 链霉亲和素(streptavidin下称SA)是与亲和素(avidin下称AV)有相似生物学特性的一种蛋白质,是streptomyces avidinii菌的分泌物,其分…

AotuDL中Linux环境下运行pix2pix-tensorflow的环境配置(tensorflow==1.8.0 python==3.6)

目录写在前面1. 租用实例时基础镜像的选择2. 配置环境3. 实验记录写在前面 🍀windows环境下运行:【用于图像修复、数据增强等】结合官方代码教程,在Windows 10下运行pix2pix-tensorflow(tensorflow1.4.0 python3.6) A…

【网站架构】服务器弹性伸缩不能全自动,实际如何追加服务器

大家好,欢迎来到停止重构的频道。 本期,我们讨论大型网站的伸缩性。 伸缩性指的是通过自动增减服务器数量以适应用户量或压力。 这些年,微服务、ServerLess、K8S等技术,都让人有一种服务器自动伸缩很容易实现的错觉。 其实&…

最短路径问题

目录 一、前言 二、算法讲解 1、Dijkstra--朴素算法:O(n * n) 2、Dijkstra--堆优化算法:O(mlogm) 3、Bellman_ford贝尔曼算法: O(n * m) 4、Spfa算法:O(n * m) 5、Spfa处理负环:O(n * m) 6、Floyd算法&#xf…

iOS 列表页面实时刷新解决方案

iOS 列表页面实时刷新解决方案 一、背景介绍 1.1 问题的出现 客户要求APP客户端每次切换Tab,都需要从服务器去获取最新的数据,所以每次切换Tab,客户端都会去主动刷新接口,以获取最新的数据。但是实际发现,每次切换T…