Go语言go modure的使用以及第三方包的依赖管理
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的使用以及第三方包的依赖管理相关推荐
- VsCode,GO语言,go mod 下导入第三方包飘红,但是可以执行
问题:使用VScode编写的Go语言代码,开启了go mod,导入第三方包 import "github.com/360EntSecGroup-Skylar/excelize" 飘 ...
- SpringSecurity+Oauth+短信登录+第三方登录认证+Session管理
目录: 零.前言 一.SpringSecurity 简介 二.标准登录 三.用户认证代码实现 零.前言 在开始本文之前,底层这块已经有了很大的调整,主要是SpringBoot由之前的 1.5.9.RE ...
- go语言 第三方包安装方法_【分享吧】Go语言第三方包的使用介绍与场景应用
Go语言是一种跨平台(Mac OS.Windows.Linux 等)的静态编译型语言.拥有媲美C语言的强大性能,支持静态类型安全,在普通计算机上能几秒内快速编译一个大项目,开发效率跟动态语言相差无几. ...
- go语言下载安装第三方包
目前使用的方法是通过网上东拼西凑出来的,所以整的有点莫名其妙 使用命令时如果一直不成功,安装下面的工具 Git:Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非 ...
- openpyxl安装_自拍教程76Python 一键批量安装第三方包
案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时, 可以考虑把日常自动化测试所需要用到的第三方Python包(非自带内置包), 一次性批量安装上. 准备阶段 1.确保p ...
- Go 语言的包依赖管理
对于从 Ruby.Python 或者 Node 等编程语言转向 Go 语言的开发者,可能会有一个疑问: Go 语言中的包依赖关系是怎么管理的?有没有什么方便使用的工具呢? 我最近研究了一下这个问题,以 ...
- go get安装第三方包的前提条件和步骤
首先,你要找到第三方类包所在的网址, 例如: http://github.com/Go-sql-driver/MySQL 分为命令行自动安装 和 手动下载 然后安装. ( 欢迎加入go语言群: 21 ...
- Anaconda安装和使用指南教程:环境管理、包管理、离线安装第三方包
本文介绍anaconda的安装,和使用anaconda对Python进行环境管理. Anaconda安装和使用指南教程 1 概述 2 安装 3 环境管理 3.1 检查conda 3.2 创建环境 3. ...
- access导入链接快还是导入表快_Go 语言设计哲学之十三:理解包导入路径的含义...
Go 语言是使用包(package)作为基本单元来组织源码的, Go 程序就是这些包链接起来而构建的.与C 语言的头文件包含机制相比则是"先进"了许多. 即便是每次编译都是从头开始 ...
最新文章
- 下一代微服务!ServiceMesh的2018年度总结 | 万字雄文
- python爬虫入门(六) Scrapy框架之原理介绍
- C# SendInput 实现模拟鼠标操作
- 剑指offer_输入n个整数,找出其中最小的K个数
- 【意见征集补充】09'博客园T恤设计
- 全球最厉害的 14 位程序员,你认识几位?
- 谷歌邮箱lmap服务器填什么_GMAIL邮箱IMAP设置
- js 负数转换正_js 负数转换成正数的方法
- echarts实现词云图表,及参数配置详解
- Manjaro快速上手指南-微信、TIM/QQ、网易云音乐、WPS等等
- Docker、nvidia-container-toolkit安装与常用docker命令及docker镜像和容器的更新维护
- 数据库的三级模式结构和两级映像
- 如何组建游戏制作团队?团队人员如何寻找?
- 深入浅出Google Clould Platform (1)----GCP 考证
- 论EBS的并发请求(报表中心)的必要性
- 绝缘电阻仪测试仪与绝缘耐压测试仪的区别
- 【域控管理】域控的必要性
- pytorch RNN实现分类
- 【高胜寒碎碎念】为什么有人愿意花两万块钱去参加IT培训学习?
- 求解矩阵的秩相关算法(C语言)