go的安装、gin安装以及GoLand的配置

news2024/12/23 6:58:57

一.go的安装以及Goland配置

go的安装:

https://www.runoob.com/go/go-environment.html

MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下。

mac中按 +shift+. 即可显示隐藏文件夹,再按一次,即可再隐藏。

go安装后的目录结构:

GOPATH="/Users/xll/go"

GOROOT="/usr/local/go"

GOROOTGOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录(/home/用户名/go

Go语言要求必须配置GOPATH环境变量.告诉系统项目的路径.保存go项目代码和第三方依赖包。

没有包管理阶段

一开始go发布的时候是没有包管理的

go get命令会根据路径,把相应的模块获取并保存在$GOPATH/src

也没有版本的概念,master 就代表稳定的版本

当 Go 在 2009 年首次推出时,GOPATH并没有随包管理器一起提供。取而代之的是 go get,通过使用它们的导入路径来获取所有源并将其存储在 $GOPATH/src 中。没有版本控制并且『master』分支表示该软件包的稳定版本。

GOPATH是开发时的工作目录。用于:

保存编译后的二进制文件。

go get和go install命令会下载go代码到GOPATH。

import包时的搜索路径

使用GOPATH管理项目时,GO会在以下目录中搜索包:

GOROOT/src:该目录保存了Go标准库代码。

GOPATH/src:该目录保存了应用自身的代码和第三方依赖的代码。

第一步:Go会先去GOROOT的scr目录中查找,没找到。

第二步:继续在GOPATH的src目录去找,如果该目录不存在,会报错找不到package。在使用GOPATH管理项目时,需要按照GO寻找package的规范来合理地保存和组织Go代码。

Go1.11版本之后,已不再推荐使用GOPATH来构建应用了,推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。

什么时候用 GOPATH, 什么时候用 GOMODULE ? 这是个问题,需要通过 GO111MODULE 来解决。

GO111MODULE 有三个值:off, on和auto(默认值)。

1.GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。

2.GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。

3.GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:

1.当前目录在GOPATH/src之外且该目录包含go.mod文件

2.当前文件在包含go.mod文件的目录下面。

Go语言在寻找包时会从GOPATH/src 路径中寻找包,如果不存在去GOROOT/src(Go语言标准库源码所在文件夹)下找

Goland是集成开发环境,所以在GoLand中配置GOPATH即可.

在很多与 Go语言相关的书籍、文章中描述的 GOPATH 都是通过修改系统全局的环境变量来实现的。设置全局 GOPATH 的方法可能会导致当前项目错误引用了其他目录的 Go 源码文件从而造成编译输出错误的版本或编译报出一些无法理解的错误提示。

比如说,将某项目代码保存在 /home/davy/projectA 目录下,将该目录设置为 GOPATH。随着开发进行,需要再次获取一份工程项目的源码,此时源码保存在 /home/davy/projectB 目录下,如果此时需要编译 projectB 目录的项目,但开发者忘记设置 GOPATH 而直接使用命令行编译,则当前的 GOPATH 指向的是 /home/davy/projectA 目录,而不是开发者编译时期望的 projectB 目录。编译完成后,开发者就会将错误的工程版本发布到外网。

因此,建议大家无论是使用命令行或者使用集成开发环境编译 Go 源码时,GOPATH 跟随项目设定。在 Jetbrains 公司的 GoLand 集成开发环境(IDE)中的 GOPATH 设置分为全局 GOPATH 和项目 GOPATH,如下图所示。

图中的 Global GOPATH 代表全局 GOPATH,一般来源于系统环境变量中的 GOPATH;Project GOPATH 代表项目所使用的 GOPATH,该设置会被保存在工作目录的 .idea 目录下,不会被设置到环境变量的 GOPATH 中,但会在编译时使用到这个目录。建议在开发时只填写项目 GOPATH,每一个项目尽量只设置一个 GOPATH,不使用多个 GOPATH 和全局的 GOPATH。

一、gin的安装

设置GOPATH目录,GOPATH="/Users/xll/go"(安装go开发包的时候会默认设置GOPATH="/Users/xll/go",所以构建了这个目录,如下图:)

  1. 新建一个存放你自己工程的目录,并在goland中创建新的project,创建好后,新建的工程目录下就会有出现go.mod文件,里面只有当前的模块路径和预期的 Go 语言版本。

在终端下进入之前新建的工程目录下

/Users/xll/go_gin_examples

输入下面的命令(需要翻墙)

$ go get -u github.com/gin-gonic/gin

https://gin-gonic.com/docs/quickstart/

国内直接安装不了,设置下面的命令

go env -w GO111MODULE=on

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

再go get -u github.com/gin-gonic/gin

安装成功后,

注意:如果没有创建"/Users/xll/go"这个目录,安装gin的时候,go get命令会自动创建该目录并将gin安装到"/Users/xll/go/pkg"下;

go.mod文件会发生变化,还会新增一个go.sum文件

indirect 的意思是传递依赖,也就是非直接依赖。执行下面的命令,调整为直接依赖。

go mod tidy

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

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

相关文章

Spring4 全细节回顾

spring细节回顾 1、IOC/DI ApplicationContext接口是BeanFactory接口的子接口,Spring所有的东西都扔到了这里边。 1、Beans:Spring负责创建类对象并管理对象; 2、Core:核心类; 3、Context:上下文参数&a…

机器学习(4)——周志华

归纳偏好 若非必要,勿增实体 若多个算法都能解决同一个问题,则选取最简单的算法 当前什么样的偏好与问题更匹配,必须对问题有一个清楚的认识

shader基础入门(2)(VertexHelper)

VertexHelper(顶点帮助器/顶点辅助类/顶点助手) 官方资料版本:2019.1 使用需要继承:using UnityEngine.UI; 描述 可以帮助为 UI 生成网格的实用程序类。 此类实现 IDisposable 以帮助进行内存管理。 属性 currentIndexCount …

【vim工具的使用】

目录:前言一、普通/命令模式1.文件中移动 - 12.文件中移动 - 23.复制、粘贴、剪切、删除4.行内删除5.撤回6.替换7.高亮选中8.逐单词移动 - 3二、底行模式1.退出vim2.设置行号3.替换4.搜索3.不退出vim的情况下进行操作4.多文件操作三、替换模式四、插入模式总结前言 …

Python递归小练习

递归算法是常见的基础算法之一,阶乘、青蛙跳台、兔子算法等便是递归算法中典型的例子。 1、阶乘以6的阶乘为例,计算的过程如下图所示 Python代码实现如下: def jiecheng(n):if n 1:result 1else:result n * jiecheng(n - 1)return resul…

蓝桥杯寒假集训第九天(回文日期)

没有白走的路,每一步都算数🎈🎈🎈 题目描述: 输入一行数据,这个数据是从10000101到89991231,输出这个数据后面的第一个回文数,以及输出第一个ABABBABA型的回文数。 注意&#xff1…

跟着博主一起刷题:《剑指offer》(第五天)

跟着博主一起刷题 这里使用的是题库: https://leetcode.cn/problem-list/xb9nqhhg/?page1 目录剑指 Offer 37. 序列化二叉树剑指 Offer 38. 字符串的排列剑指 Offer 40. 最小的k个数剑指 Offer 37. 序列化二叉树 剑指 Offer 37. 序列化二叉树 序列化: …

windows下mmclassification安装教程

文章目录mmclassification版本0.23.1一.官方安转教程二.安装教程mmclassification版本0.23.1 一.官方安转教程 官网 二.安装教程 创建conda环境 conda create --name openmmlab python3.8 -y进入创建的环境 conda activate openmmlab安转pytorcch conda install pytorch torc…

CSS知识点精学5-定位装饰

目录 一.定位 1.定位的基本介绍 2.定位的基本使用 3.静态定位 4.相对定位 5.绝对定位 6.子绝父相 a.优化学成网站推荐课程卡片 b.绝对定位盒子的居中(案例) 8.固定定位 9.元素的层级关系 二.装饰 1.垂直对齐方式 2.光标类型 3…

计算机网络实验报告

计算机网络实验报告 文章目录计算机网络实验报告一、验证性实验ipconfig实作一实作二问题ping实作一实作二问题tracert实作一问题一问题二问题三ARP实作一实作二实作三问题DHCP实作一问题netstat实作一实作二DNS实作一实作二实作三问题cache实作二二、Wireshark 实验数据链路层…

果蔬消毒机行业市场深度监测及发展趋势预测分析

2023-2029年中国果蔬消毒机行业市场深度监测及发展趋势预测报告报告编号:1691217本报告著作权归博研咨询所有,未经书面许可,任何组织和个人不得以任何形式复制、传播或输出中华人民共和国境外。任何未经授权使用本报告的相关商业行为都将违反…

STP生成树基础,一个难点

技术背景:二层交换机网络的冗余性与环路 二层环路带来的问题(三层环路,ttl跳数达到一定次数会丢弃) 典型问题 1:广播风暴不停的在接口内复制转发广播 2:MAC地址漂移 sw1接口1与2,对sw3的接收ma…

CentOS7.x下部署oracle19c环境

CentOS7.x下部署oracle19c环境 文章目录CentOS7.x下部署oracle19c环境前言一、环境准备工作1.1、虚拟机搭建及关闭防火墙和selinux1.2、RPM包预安装1.3、检查安装情况用户组已创建完成1.4、创建目录1.5、修改/etc/hosts 文件1.6、设置oracle口令1.7、设置环境变量1.8、将oracle…

[LeetCode周赛复盘] 第 327 场周赛20230108

[LeetCode周赛复盘] 第 327 场周赛20230108 一、本周周赛总结二、 [Easy] 6283. 正整数和负整数的最大计数1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6285. 执行 K 次操作后的最大分数1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6284. 使字符串总不同字符的数目相等…

10、ThingsBoard-租户

1、租户的概念 目前,有很多的系统都是以多租户的形式来设计的,目的是为了实现数据隔离,thingsboard中也是如此。但是thingsboard把租户在抽象成了一种实体,后续还会讲解其它的实体;用官方的语言解释租户:您可以将租户视为一个单独的业务实体:它是拥有或生产设备和资产的…

Java中ThreadLocal说明

1、ThreadLocal是什么 ThreadLocal,即线程变量,是一个以ThreadLocal对象为键、任意对象为值的存储结构。 这个结构被附带在线程上,也就是说一个线程可以根据一个ThreadLocal对象查询到绑定在这个线程上的一个值。 ——《Java并发编程艺术》如…

GrapeCity Documents Data Viewer[GcDataViewer] Crack

GrapeCity Documents Data Viewer,简称GcDataViewer,是一个统一的基于 JavaScript 的客户端查看器,旨在加载和预览与数据相关的所有流行文档格式。目前,查看器支持 XLSX、SSJSON 和 CSV 格式。除了仅加载数据文件外,数…

卷径计算(厚度累计法/膜厚积分法)

卷径计算的截面积法请参看下面的文章链接: 卷径计算详解(通过卷绕的膜长和膜厚进行计算)_RXXW_Dor的博客-CSDN博客有关卷绕+张力控制可以参看专栏的系列文章,文章链接如下:变频器简单张力控制(线缆收放卷应用)_RXXW_Dor的博客-CSDN博客_收放卷应用张力控制的开闭环算法,…

“/ArcGIS/services”应用程序中的服务器错误

本文迁移自本人网易博客,写于2013年1月5日No Content说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: No Content源错误…

第三章 图形初阶

我曾经多次向客户展示以数字和文字表示的、精心整理的统计分析结果,得到的只是客户呆滞的眼神,尴尬得房间里只能听到鸟语虫鸣。然而,当我使用图形向相同的用户展示相同的信息时,他们往往会兴致盎然,甚至豁然开朗。我经…