基于go mod模式创建项目最佳实践

news2024/11/20 1:41:40

 希望能带给你成功的喜悦!

除go get、vendor这两种方式外,Go版本在1.11之后推出了go module模式来管理依赖,使用go mod时下载的依赖文件在$GOPATH/pkg/mod/下。本文以两种办法介绍如何创建go mod项目。

目录

goland开启玩法

本地手动创建项目且不在$GOPATH目录下


 

goland开启玩法

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9sYW42MTkzLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70

点击create,写一个main.go里面加一个新依赖,可以看到未拉取的依赖包为红色:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9sYW42MTkzLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70

这时候有两个办法,第一个是鼠标移动至红色依赖部分,会提示

20200113180428301.png

点击第一个Sync这个会自动下载好依赖,并在项目目录下生成go.sum文件:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9sYW42MTkzLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70

第二个方法是在终端执行go test,和第一种方法效果相同:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9sYW42MTkzLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70

go.mod文件中会声明你下载的依赖,下载的依赖文件在$GOPATH/pkg/mod/下。

本地手动创建项目且不在$GOPATH目录下

比如在本地任意目录下创建一个文件夹作为你的项目目录,添加上面的main.go文件。

终端执行

go mod init test-gomod

执行后出现go.mod文件

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9sYW42MTkzLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70

指令需要加项目名test-gomod,直接go mod init会报go: cannot determine module path for source directory xxx\test-gomod (outside GOPATH, module path must be specified)

就是意思现在操作的目录不是go语言的GOPATH目录】

ok,run一下这个main.go编译运行看看

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9sYW42MTkzLmJsb2cuY3Nkbi5uZXQ=,size_16,color_FFFFFF,t_70

出现了go.sum文件,并且启动server成功了(我这因为测试手动这种方式时前面已经在mod目录下有了gin依赖,所以这次暂时没有拉取依赖这个环节,如果你是第一次用这种办法,跟第一种创建项目的方式一样,执行go test即可),浏览器访问一下看是不是真的正常:

ab3fc03317b34a1e9b2aed7a0e4fbafd.png

大功告成!

 

 

 

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

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

相关文章

###C语言程序设计-----C语言学习(6)#

前言:感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。 一. 主干知识的学习 1. while语句 除了for语句以外,while语句也用于实现循环,而且它…

shell脚本自动化备份网络设备配置教程

由于局域网内存在多台网络设备,如防火墙、路由器、交换机等,数量众多,且品牌不同,手工备份配置需要相当长的时间,现需要实现自动化导出备份配置。 经查询,该局域网内存在华为及阿尔卡特两种品牌&#xff0…

Android Studio 下载安装配置使用入门【2024年最新】

前言: Android Studio 是谷歌官方提供的主要集成开发环境(IDE),专为 Android 平台应用开发而设计。它基于 JetBrains 的 IntelliJ IDEA 软件,并在此基础上增加了大量针对 Android 开发的定制功能。Android Studio 通过…

CMake 完整入门教程(一)

1 前言 每一次学习新东西都是很有乐趣的,虽然刚开始会花费时间用来学习,但是实践证明,虽然学习新东西可能会花费一些时间,但是它们带来的好处会远远超过这些花费的时间。学习新东西是值得的,也是很有乐趣的。 网络上…

C语言二维数组的使用案列,来自C语言程序设计第五版本

感谢关注我的123个小伙伴,我会给大家带来更多的知识,但是C语言的学习,我准备今天学了这个月暂时停止更新了,下个月一号砸门又见面,休息两天弄其它的事情,也好几天没有看论文了。 二维数组的创建比较简单&am…

基于Python 爬虫的房地产数据可视化分析与实现

摘要: 过去,不管是翻阅书籍,还是通过手机,电脑等从互联网上手动点击搜索信息,视野受限,信息面太过于狭窄,且数据量大而杂乱,爆炸式信息的更新速度是快速且不定时的。要想手动获取到海…

算法沉淀——前缀和(leetcode真题剖析)

算法沉淀——前缀和 01.一维前缀和02.二维前缀和03.寻找数组的中心下标04.除自身以外数组的乘积05.和为 K 的子数组06.和可被 K 整除的子数组07.连续数组08.矩阵区域和 前缀和算法是一种用于高效计算数组或序列中某个范围内元素之和的技巧。它通过预先计算数组的前缀和&#xf…

Spring5深入浅出篇:Spring中的FactoryBean对象

Spring5深入浅出篇:Spring中的FactoryBean对象 Spring工厂创建简单对象 之前我们通过Spring配置文件创建的都是简单对象,那么什么是简单对象呢?简单对象就是通过new 构造方法 创建的对象,比如:UserService,User,Person等.那么我们就需要知道什么是复杂对象 什么是复杂对象 复…

防御保护笔记02

防火墙 防火墙的主要职责在于:控制和防护 ---- 安全策略 --- 防火墙可以根据安全策略来抓取流量 防火墙分类 按物理特性划分 软件防火墙 硬件防火墙 按性能划分 百兆级防火墙 吞吐量:指对网络、设备、端口、虚电路或其他设施,单位时间内成…

计算机网络——网络层(2)

计算机网络——网络层(2) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 网络层——控制平面概述路由选择转发表路由协议路由信息的交换小结 路由选择算法常见的路由选择算法距离矢量路由算法工作原理优缺点分析 链路状态路由算法基本工作原理优…

【计网·湖科大·思科】实验五 IPV4地址-分类地址和构建超网

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要&…

ZYNQ:CAN外设应用存在的问题

流程 为了用ZYNQ实现CAN总线功能,分为多个阶段: 1学习小梅哥视频,了解zynq简单工作搭建的流程,比如点亮LED。 GPIO 功能 按照小梅哥的视频搭建ZYNQ-PS应用系统时,vitis没有出现ps7_gpio_0这个硬件。这导致vitis软件…

深入了解DRAM和SDRAM:内存带宽的计算与封装形式的奥秘

SSD SDRAM DDR SDRAM简介 动态随机存取存储器DRAM(Dynamic Random Access Memory,DRAM)是一种半导体存储器。 其主要的作用原理是利用电荷内存储电荷的数量来代表一个二进制比特(bit)是1还是0。 由于在现实中品体管…

联想懂的通信×实在智能:共同探索智连融合AI创新发展路径

近日,联想集团副总裁/联想懂的通信CEO王帅、CFO周利军、COO&CPO邢海洋、CGO赵晨、CTO边毅等领导一行莅临杭州实在智能科技有限公司开展研讨座谈。 实在智能创始人&CEO孙林君、联合创始人&COO高扬、联合创始人&CMO张俊九、销售VP&运营商事业线负…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-4 Document

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>Document</title> </head><body> <canvas id"cavsElem" width"400" height"600">您的浏览器不支持Canvas…

备战蓝桥杯---二分(基础)

何为二分&#xff1f;形象的说&#xff0c;就是单调函数求零点。 我们先对二分查找简单的分析一下&#xff08;主要是模板及易错点&#xff09; 1.找>x的第一个位置&#xff1a; 2.找<x的第一个位置&#xff1a; …

广联达-EmailAccountOrgUserService-sql注入漏洞复现

产品简介 广联达OA是一款为企业提供综合办公解决方案的软件。它集成了多种功能&#xff0c;包括文档管理、流程审批、任务分配等&#xff0c;旨在提高企业内部的工作效率和协作能力。同时&#xff0c;广联达OA还注重安全性&#xff0c;通过多种措施保护企业数据和信息的安全。…

Markdown(2篇文章学会Markdown

目录 1.文章链接&#xff1a;2.markdown可以用来解决什么问题&#xff1a;小结&#xff1a; 1.文章链接&#xff1a; Markdown&#xff08;2篇文章学会Markdown第一篇 Markdown&#xff08;2篇文章学会Markdown第二篇 2.markdown可以用来解决什么问题&#xff1a; 格式化文…

C++ 类与对象(上)

目录 本节目标 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6. 类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 7.3 结构体内存对齐规则 8.this指针 8.1 thi…

开源之力与GPT的碰撞:探索未来技术的无限可能

摘要&#xff1a; 在本文中&#xff0c;我们将探讨开源软件与GPT&#xff08;大型预训练语言模型&#xff09;的完美结合如何推动技术的飞速发展。我们将简要介绍开源文化的价值观及其对技术创新的影响&#xff0c;分析GPT系列模型在开源社区中的发展与应用&#xff0c;并通过代…