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

本文详细介绍Go语言1.11版本中新加入的gomodules特性,用于项目包管理和第三方依赖管理。通过实例演示如何使用gomod进行依赖下载、模块初始化及管理,包括download、edit、graph、verify等命令的使用。

Go语言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 main

import (
	"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 firstgo

go 1.13

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值