GoPath模式和GoMoudle模式的示例分析

  介绍

小编给大家分享一下GoPath模式和GoMoudle模式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

去模组的前世今生

前世-gopath

GoPath是什么

GoPath是什么,相信已经不用我再多说什么了。大家深受摧残多年,应该已经有所体会。在v.1.11版本之前,安装去肯定要在环境变量中配置<代码> GoPath>

——本存放编译后生成的二进制可执行文件

——包裹存放编译后生成的<代码>。文件

——src存放项目的源代码,可以是你自己写的代码,也可以是你去下载的包

将你的包或者别人的包全部放在<代码> GOPATH美元/src/<代码>目录下进行管理的方式,我们称之为GOPATH模式。

GOPATH有什么样的问题?

版本管理问题

GOPATH根本没有版本的概念,如果你所应用的库需要升级,那就是全局升级,所以涉及这个库的服务在下一次编译中都会使用新的库,这是一件很危险的事情。版本管理非常重要,自己应该管理好自己的引用库。

协同开发问题

当其他的开发者得到到源码进行修改的时候,你无法保证他下载的包是不是你所期望的版本,这及有可能导致服务出错,且很难查找原因。

今生-GoMoudle

去模块在v1.11版本正式推出,在发布的v1.14版本中,官方正式发话,称其已经足够成熟,可以应用于生产上。

从v1.11开始,<代码>去env> GO111MODULE> GO15VENDOREXPERIMENT 环境变量,其中,表示的供应商是在v1.5时才诞生的。

<代码> GO111MODULE>

它有三个可选值:<代码> ,<代码> ,<代码>汽车> <代码>。

<李>

<代码> GO111MODULE=禁了用模块支持,编译时会从<代码> GOPATH 和<代码>供应商文件夹中查找包。

<李>

<代码> GO111MODULE=> GOPATH 和<代码>供应商文件夹,只根据<代码> go.mod> <李>

<代码> GO111MODULE=汽车> GOPATH美元/src/<代码>外且项目根目录有<代码>。国防部文件时,自动开启模块支持。

去国防部出现后,GOPATH(肯定没人使用了)和GOVENDOR将会且正在被逐步淘汰,但是若你的项目仍然要使用那些即将过时的包依赖管理方案,请注意将GO111MODULE置为。

具体怎么设置呢?可以使用去env的命令,如我要开启模,就使用这条命令

go  env  -w  GO111MODULE=爸?

去国防部使用

去国防部不再依靠GOPATH美元,使得它可以脱离GOPATH来创建项目

你可以在你电脑的任意位置创建一个文件夹go_demo

使用去国防部命令初始化,此时目录下只有2个文件,走了。国防部是执行命令后生成的文件。

go  mod  init  go_demo

 GoPath模式和GoMoudle模式的示例分析

文件<代码>主要。解释:引入一个现在的时间处理库,输出时间

package 主要      import  (   “fmt"      “;github.com/jinzhu/now"   )      func  main (), {   fmt.Println (“hello  world",, now.BeginningOfDay ())   }

。国防部内容

module  go_demo      1.15 go       require github.com/jinzhu/now  v1.1.1

内容解释:

<李>

第一行:模块的引用路径

<李>

第二行:项目使用的版去本

<李>

第三行:项目所需的直接依赖包及其版本

此时我们在命令行执行<代码>去构建进行编译,发现多了一个。总和文件,那么这个文件又是什么?

 GoPath模式和GoMoudle模式的示例分析

。总和文件相比走。国防部就比较复杂了。虽然内容多,但是也不难理解。

GoPath模式和GoMoudle模式的示例分析