03-go的包管理

03-go的包管理

Go 1.11和1.12版本时就已经支持了对包管理功能,但还是相对有一些小的问题,不过在后续的版本中已经陆续解决。增加包管理是必然趋势,一门好的语言,不光要有好的生态,优美的语法,包管理也是必不可缺的功能,例如大名鼎鼎 npm,就连 C++ 也要推出包管理,好的包管理会让项目更加整洁,依赖关系也相对清晰。

回顾go的前世包管理

在go没有支持新的包管理之前,对于项目中的包管理方式是五花八门的,这种情况导致各个项目之间存在很多潜在问题,并且都需要手动下载,基本上有以下一些:

  • 使用官方的方式也就是不借助其他工具,所有依赖包都需要自行手动下载。
  • 使用的第三方库对于包管理是没有版本管理的,此时第三方进行不兼容更新,会导致很多错误。
  • 多人协作开发项目,必须限定每个开发者在$GOPATH/src目录下安装依赖。
  • 第三方包和自己项目的源码会混合,导致项目很混乱。

不合理的地方还有很多,不一一列举,好在这样的时代已经过去,迎接而来的是一片光明。

新的包管理

新的包管理解决了上面提到的大部分问题,有以下特点:

  • 自动下载依赖包
  • 项目不是必须存放在GOPATH/src目录下了
  • 所有依赖会在一个叫go.mod文件内存放
  • 所有第三方库会有相应的版本管理
  • 对于一些已经转移的包,会自动替换引用声明。

总之优点很多,解决了大部分让我们头疼的问题。

如何使用新的包管理?

1.配置包管理的环境变量

.bashrc文件内增加GO111MODULE

猜你喜欢

转载自blog.csdn.net/wf19930209/article/details/105034280