如果你还在使用 GOPATH 模式来开发Golang程序,那么你可以参考本文来告别 GOPATH,并带给你一个方便的包管理工具。

关于 go mod 的说明和简单使用,可以参考:

1、Go1.1.1新功能module的介绍及使用

2、Introduction to Go Modules

3、Go 1.11 Modules 官方说明文档

使用go mod 管理项目,就不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目,比如:

新建一个名为 wserver 的项目,项目路径 D:\test\wserver (注意,该路径并不在GOPATH里)

进入项目目录 D:\test\wserver 里,新建一个 go源码文件: main.go

然后在 D:\test\wserver 里打开终端执行命令:  go mod init wserver (go mod init 后面需要跟一个名字,我这里叫wserver)

看到提示 “go: creating new go.mod: module wserver”  说明 go mod 初始化成功了,会在当前目录下生成一个 go.mod 文件。

包含go.mod文件的目录也被称为模块根,也就是说,go.mod 文件的出现定义了它所在的目录为一个模块。

执行上述命令之后,其实你已经可以开发编译运行此项目了,比如我们随便使用github上的一个包,在终端打印一下

运行一下,会看到输出结果:  { false false false}  ,同时项目目录下多出了一个文件 go.sum  。

go.sum 是记录所依赖的项目的版本的锁定。

在 main.go 里如果需要使用这个包,需要使用这个包的 模块内的绝对路径来导入,比如:

"wserver/route"  导入这个包的地方是 模块内的绝对路径,就是要从go.mod所在的目录开始。

另外,如果我们想把这个项目放到GOPATH下面,不使用go mod模式,而是想使用GOPATH模式的话,,只需要把这个项目移到GOPATH环境变量包含的任意一个目录下面的src目录里,就可以启用GOPATH模式了(前提是 GO111MODULE 这个环境变量的值必须是auto 或 off)。

比如:gotest 目录是GOPATH环境变量里的其中一个目录,我们将上面的代码复制到 src 目录下,删除原来的go.mod 、go.sum 两个文件(也可以不删除),代码一样可以运行:

小总结:

使用go mod ,利用Go 的 module 特性,你再也不需要关心GOPATH了(当然GOPATH变量还是要存在的,但只需要指定一个目录,而且以后就不用我们关心了), 你可以任性的在你的硬盘任何位置新建一个Golang项目了。

好了,本文就是个非常简单的小示例,只是告诉初次使用go mod的人,如何快速开始使用go mod 。详细的概念和使用方法,请仔细阅读开头列出的3篇文章。

GO: go.mod go.sum相关推荐

  1. 18,rand('state',sum(100*clock))

    原文链接:Matlab中rand('state',sum(clock))解析 - 火星十一郎 - 博客园 https://www.cnblogs.com/hxsyl/p/4523988.html Ma ...

  2. Sum of Paths CodeForces - 1467D

    Sum of Paths CodeForces - 1467D Tagscombinatorics dp math *2200 题意: 定义一条好的路径,当且仅当从任意点出发之后恰好经过了 k 次移动 ...

  3. CF1612G Max Sum Array

    解析 被蓝题虐了.(悲 确实不太难,就是没往那边想. 考虑如果某个值的下标分别位 i1,i2,...,ini_1,i_2,...,i_ni1​,i2​,...,in​ 那么如何计算贡献. 每一个下标和 ...

  4. codeforces1485 F. Copy or Prefix Sum(dp)

    F. Copy or Prefix Sum Venice technique简要就是懒标记思想. 由于前缀和数组和原数组一一对应,这里我们选择求aia_iai​的前缀和数组的方案数(下面aia_iai ...

  5. Fibonacci Sum(二项式求和)

    这道题没写过类似的感觉确实不好想,考点在与二项式求和优化等式.特别是优化等式这里,是真的坑. 废话不多说,上推到过程: 因为: 可以有: 所以有二项式展开: 很明显竖起来是等比,所以这样就可以把复杂度 ...

  6. 在go mod中使用k8s.io/code-generator生成代码

    准备工作 - 创建项目crd - 在项目下创建pkg/apis/foo/v1目录 - 在pkg/apis/foo下创建register.go - 在pkg/apis/foo/v1下创建doc.go, ...

  7. ACM-ICPC 2017 Asia Urumqi K. Sum of the Line 容斥

    5222: Sum of the Line 时间限制: 1 Sec  内存限制: 128 MB 提交: 203  解决: 59 [提交] [状态] [讨论版] [命题人:admin] 题目描述 Con ...

  8. CF963A Alternating Sum

    Alternating Sum 题目传送门 思路:这道题呀,需要涉及到两个数学知识,一是逆元,二是等比数列求和公式. 一:逆元 我们知道 mod 这个东西在题目中时常出现,他可以用于加法,减法,乘法, ...

  9. Go 学习笔记(82)— Go 第三方库之 viper(解析配置文件、热更新配置文件)

    1. viper 特点 viper 是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式.支持特性功能如下: 设置默认值 读取 JSON.TOML.Y ...

最新文章

  1. 用Python解锁“吃鸡”正确姿势
  2. 选择PHP,选择自由与开源
  3. 「SAP技术」SAP 如何看序列号被包在哪些HU里?
  4. 八十四、堆排序解决TopK问题
  5. 第十届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
  6. SAP OData batch request的并行处理实现原理
  7. oracle 9.2.0.4,CentOS 4.7 安装Oracle 9.2.0.4的一些问题
  8. OJ1085: 求奇数的乘积(多实例测试)(C语言)
  9. 安卓应用安全指南 4.3.2 创建/使用内容供应器 规则书
  10. 当罗密欧遇到朱丽叶... ...当指针遇到数组
  11. Linux时间子系统之(五):POSIX Clock
  12. utilities——C++常用仿函数(二)
  13. php ip 访问频繁,php刷新过于频繁自动加ip黑名单
  14. 计算机毕业设计、课程设计、实战项目之[含论文+答辩PPT+任务书+中期检查表+源码等]基于ssm的NBA球队管理系统
  15. 《5G应用“扬帆”行动计划(2021-2023年)》征求意见稿发布
  16. 调研报告之——可见光通信与可见光定位
  17. v4l2_async_subdev_notifier_register 分析
  18. Your account has been flagged. Because of that, your profile is hidden from the public. If you belie
  19. 菁英杯计算机能力大赛试题,“第四届全国大学生计算机系统能力培养大赛(龙芯杯)”决赛结果...
  20. oracle 倒库详细步骤,科目二倒车入库步骤详解,考前必看!

热门文章

  1. 深圳新生儿出生入户办理流程 - 父深圳公司集体户 母内地户口
  2. stb_truetype解析ttf字体获取顶点信息
  3. 2022年陕西省中级工程师职称评定流程是怎样的,仔细看哦
  4. 抖音直播短视频运营带货创业项目营销策划方案计划书
  5. 电力系统随机潮流概率潮流计算MATLAB程序包含蒙特卡洛模拟法、半不变量法+级数展开
  6. pycharm 导包时不小心选择了“Ignore unresolved reference“
  7. 超详细的Charles抓包工具的使用
  8. 实验五 shell编程(Linux基础教程 第2版)
  9. OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装
  10. 荣耀7x Android8,荣耀7X升级安卓8.0