Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > go包管理工具

Golang中的包及包管理工具go mod详解

作者:夜满星河

这篇文章主要介绍了Golang中的包及包管理工具go mod,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、包

1.包的种类:系统内置包、自定义包、第三方包。

(1)系统内置包:go语言自带包,如str.conv、fmt等

(2)自定义包:开发者自己写的包

(3)第三方包:属于自定义包的一种,需下载到本地才能使用, 如可以从GitHub上下载的第三方包。

2.包是多个go源文件的集合,一个package下可以有多个go文件,归属于同一package

二、包管理工具go mod

1.在go的1.11版本之前如果想自定义包需要把项目放在GOPATH目录下。在go的1.11版本之后无需手动配置环境变量,使用go mod管理项目,也不需要把项目放在GOPATH下。在go的1.13版本之后就彻底

不需要GOPATH了。

2.实际开发中首先需要在项目目录下通过go mod init命令来创建一个go.mod文件来管理项目,如在项目project下初始化项目:go mod init project。一个项目中必须要有main包和main方法。

3.一个包里可以定义方法或变量,如果方法名或变量名大写,则此方法或变量可以被其他包引用并使用,表示公有,小写为私有。

三、init函数

1.如果在go文件里定义了init函数,则init函数会在程序运行时自动被调用执行,且为最先执行。

2.如果一个包引用了另一个包,另一个包又引用了另一个包,被最后导入的包会最先初始化并执行init函数。

四、使用第三方包

1.首先在github上找到第三方包,下载到本地即可进行引用。

2.安装方法:

(1)go get 包名称(全局,受网络影响)

(2)go mod download(全局,下载当前包的依赖)

(3)go mod vendor(将依赖复制到当前项目的vendor下,本项目)

补充:下面看下go mod包管理工具

修改go的.env文件中的配置

GO111MODULE=on
GOBIN=/Users/youdi/go/bin
GOPROXY=https://goproxy.cn,direct
GOSUMDB=off

进入goPath路径下的src目录

执行命令

go mod init 项目名

会生成go.mod文件

下载需要的包,移除多余的包

go mod tidy

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 (验证依赖是否正确)
whyexplain why packages or modules are needed(解释为什么需要依赖)

到此这篇关于Golang中的包及包管理工具go mod的文章就介绍到这了,更多相关go包管理工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文