Go语言go modure的使用以及第三方包的依赖管理

  • Go modure介绍
  • 环境
  • 使用

Go modure介绍

go modules 是 golang 1.11 新加的特性,主要用来进行项目包的管理,在此之前其实也有其他工具,但是都有一定的不足,想了解的可以自行去查一下,本文主要介绍go mod的使用
(本文假设go相关的东西已经安装好,包括代理GOPROXY=https://goproxy.cn,direct)

环境

通过go env可以查看自己go相关的配置,其中GO111MODULE=“on”表示使用go mod模式,此模式下不会使用$GOPATH,如果GO111MODULE!=“on”,可以通过go env -w GO111MODULE=on进行设置。

使用

此时新建一个文件夹作为本次介绍的试验项目,随便放在哪都可,然后在目录下执行go mod init projectname : projectname就是我们这个模块名,这时我们的目录下就会有一个go.mod文件。

然后再到此目录下新建一个main.go文件,用来做第三包的管理测试,我所在的环境是CentOS,mac和其他linux环境应该相差无几。

然后在文件里加入如下代码:

package mainimport ("log""os""github.com/goinaction/code/chapter2/sample/search"
)func init() {log.SetOutput(os.Stdout)
}func main() {search.Run("prisident")
}

其中 “github.com/goinaction/code/chapter2/sample/search” 是Go语言实战中的项目路径,读者可以在这里改为其他第三方库均可。
在这里,很神奇的事情就发生了,此时mod组件就会自动把这个第三方包的代码下载到$GOPATH/pkg/mod/github.com路径下了,这就是使用go mod的方便之处,而且,go.mod文件内容会变为:

module firstgogo 1.13require github.com/goinaction/code v0.0.0-20171020164608-49fc99e6affb // indirect

这就很方便了,而且go mod 还提供很多命令方便我们进行第三方包的管理:

命令 说明
download download modules to local cache(下载依赖包)
edit edit go.mod from tools or scripts(编辑go.mod)
graph print module requirement graph (打印模块依赖图)
verify initialize new module in current directory(在当前目录初始化mod)
tidy add missing and remove unused modules(拉取缺少的模块,移除不用的模块)
vendor make vendored copy of dependencies(将依赖复制到vendor下)
verify verify dependencies have expected content (验证依赖是否正确)
why xplain why packages or modules are needed(解释为什么需要依赖)

具体的使用读者可以自行进行测试

Go语言go modure的使用以及第三方包的依赖管理相关推荐

  1. VsCode,GO语言,go mod 下导入第三方包飘红,但是可以执行

    问题:使用VScode编写的Go语言代码,开启了go mod,导入第三方包 import "github.com/360EntSecGroup-Skylar/excelize" 飘 ...

  2. SpringSecurity+Oauth+短信登录+第三方登录认证+Session管理

    目录: 零.前言 一.SpringSecurity 简介 二.标准登录 三.用户认证代码实现 零.前言 在开始本文之前,底层这块已经有了很大的调整,主要是SpringBoot由之前的 1.5.9.RE ...

  3. go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用

    Go语言是一种跨平台(Mac OS.Windows.Linux 等)的静态编译型语言.拥有媲美C语言的强大性能,支持静态类型安全,在普通计算机上能几秒内快速编译一个大项目,开发效率跟动态语言相差无几. ...

  4. go语言下载安装第三方包

    目前使用的方法是通过网上东拼西凑出来的,所以整的有点莫名其妙 使用命令时如果一直不成功,安装下面的工具 Git:Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非 ...

  5. openpyxl安装_自拍教程76Python 一键批量安装第三方包

    案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时, 可以考虑把日常自动化测试所需要用到的第三方Python包(非自带内置包), 一次性批量安装上. 准备阶段 1.确保p ...

  6. Go 语言的包依赖管理

    对于从 Ruby.Python 或者 Node 等编程语言转向 Go 语言的开发者,可能会有一个疑问: Go 语言中的包依赖关系是怎么管理的?有没有什么方便使用的工具呢? 我最近研究了一下这个问题,以 ...

  7. go get安装第三方包的前提条件和步骤

    首先,你要找到第三方类包所在的网址, 例如:  http://github.com/Go-sql-driver/MySQL 分为命令行自动安装 和 手动下载 然后安装. ( 欢迎加入go语言群: 21 ...

  8. Anaconda安装和使用指南教程:环境管理、包管理、离线安装第三方包

    本文介绍anaconda的安装,和使用anaconda对Python进行环境管理. Anaconda安装和使用指南教程 1 概述 2 安装 3 环境管理 3.1 检查conda 3.2 创建环境 3. ...

  9. access导入链接快还是导入表快_Go 语言设计哲学之十三:理解包导入路径的含义...

    Go 语言是使用包(package)作为基本单元来组织源码的, Go 程序就是这些包链接起来而构建的.与C 语言的头文件包含机制相比则是"先进"了许多. 即便是每次编译都是从头开始 ...

最新文章

  1. 下一代微服务!ServiceMesh的2018年度总结 | 万字雄文
  2. python爬虫入门(六) Scrapy框架之原理介绍
  3. C# SendInput 实现模拟鼠标操作
  4. 剑指offer_输入n个整数,找出其中最小的K个数
  5. 【意见征集补充】09'博客园T恤设计
  6. 全球最厉害的 14 位程序员,你认识几位?
  7. 谷歌邮箱lmap服务器填什么_GMAIL邮箱IMAP设置
  8. js 负数转换正_js 负数转换成正数的方法
  9. echarts实现词云图表,及参数配置详解
  10. Manjaro快速上手指南-微信、TIM/QQ、网易云音乐、WPS等等
  11. Docker、nvidia-container-toolkit安装与常用docker命令及docker镜像和容器的更新维护
  12. 数据库的三级模式结构和两级映像
  13. 如何组建游戏制作团队?团队人员如何寻找?
  14. 深入浅出Google Clould Platform (1)----GCP 考证
  15. 论EBS的并发请求(报表中心)的必要性
  16. 绝缘电阻仪测试仪与绝缘耐压测试仪的区别
  17. 【域控管理】域控的必要性
  18. pytorch RNN实现分类
  19. 【高胜寒碎碎念】为什么有人愿意花两万块钱去参加IT培训学习?
  20. 求解矩阵的秩相关算法(C语言)

热门文章

  1. emcc报错: error: LLVM_ROOT is not defined
  2. python入门心得_python入门零基础心得(一)
  3. 用于发现物联网设备的规则采集引擎
  4. java面向对象编程的实现
  5. Java学习之路5——面向对象(OOP)和异常机制
  6. m3db install
  7. 用ESP8266制作一个WiFi干扰器
  8. webService :生成wsdl文件
  9. 商超食品安全溯源系统设计与实现
  10. 【认知分享】为什么马云能成功而你不能