GoModules介绍
介绍
Gomodules是官方提供的go包管理工具,用于解决go包管理和依赖问题;从1。11开始引入,到现在1。14已经比较完善,1。16已经全面推荐使用,并且默认为开启;GoModules类似于JS的NPM,Java的maven和gradle。GO111MODULEoff:不使用modules功能GO111MODULEon:使用modules功能,不会去GOPATH下面查找依赖包GO111MODULEauto:Golang自己检测是不是使用modules功能计划在Go1。17中放弃对GOPATH将忽略GO111MODULE,需要关注默认下载目录如何设置,此特性静观1。17版本发布关于go。mod
go。mod是Go项目的依赖描述文件modulehellogo1。14requiregithub。comgogfgfv1。15。3module是配置项目名称go配置的是使用的golang版本require配置引用第三方依赖包路径和版本,latest表示最新版本
配置完编译成功后,生成go。sum依赖分析结果,里面会有当前所有的依赖详细信息;gomodules指令gogetgogetu(没有参数)下载、更新当前包下直接和间接的依赖的最新版本,并不会更新整个项目。gogetu。。。。下载、更新当前项目根目录下直接或间接的依赖的最新版本,但是会排除测试包的依赖;例如将v1。2。1更新为v2。0。1gogetupatch。。。。下载、更新当前项目根目录下直接或间接的依赖的大版本的最新小版本,例如,将v1。2。1更新为v1。2。5gogetut。。。。和gogetu。。。。相似,但是会更新测试包的依赖gogetd只执行下载动作,而不执行安装动作;不再支持gogetm,使用gogetd替代。
2。golistgolistmall列出当前项目build时需要使用直接或间接依赖的版本。golistumall不仅会列出当前使用模块的版本,还会列出当前使用模块的最新小版本和最新版本。
3。gobuild。。。。构建当前项目
4。gotest。。。。执行当前项目的测试
5。gomodgomodtidy删除不必要的依赖,添加OS,architecture,andbuildtags组合所需要的依赖。gomodvendor可选步骤,用于建立vendor文件夹,用于vendor机制的包管理gomodinit将go项目初始化成modulemode,使用gomodules进行依赖管理。gomodverify校验go。sum记录的依赖信息是否正确gomodules需要注意的地方在项目目录下生成go。mod项目中的包引用使用import〔module名称〕〔包所在文件在项目中的相对路径〕Goland配置
首先我们需要开启gomodules功能,然后配置代理;不配置代理会访问国外地址,会很慢;建议使用以下三个地址:https:goproxy。iohttps:goproxy。cnhttps:mirrors。aliyun。comgoproxy
项目结构:
创建go。mod,内容如下modulehellogo1。14require(github。comgogfgfv1。15。3)
代码内容如下:packagemainimport(fmtgithub。comgogfgfgithub。comgogfgfcryptogmd5)funcmain(){fmt。Println(helloworld!)fmt。Println(gf。VERSION)fmt。Println(gmd5。EncryptString(123456))}
第一次我们需要下载依赖包,可以选择go。mod文件右键选择GoModTidy
或者点击没下载的包,altenter键,选择Syncpackagesofhello
然后运行程序看到运行结果helloworld!v1。15。3e10adc3949ba59abbe56e057f20f883enilProcessfinishedwithexitcode0