go mod vendor简明介绍

Bertha 。 2023-10-13 18:01 126阅读 0赞

b17e4e2ae9684947bb2afc7bbc02df59.png

Go 语言在 go 1.6 版本以后编译 go 代码会优先从 vendor 目录先寻找依赖包,它具有以下优点:

  1. 复制依赖:go mod vendor 会把程序所依赖的所有包复制到项目目录下的vendor 文件夹中,所以即使这些依赖包在外部源(如 GitHub)中被删除或者更改,项目仍然可以稳定运行。
  2. 提升构建速度:构建应用时,Go 会首先在 vendor 目录中查找依赖。如果找到了所需的包,那么 Go 就会直接使用这个包,而不再去下载。
  3. 提升项目的可移植性:由于所有的依赖都被复制到了 vendor 目录中,所以可以很容易地把整个项目复制到新的环境,无需担心依赖问题。

然而,vendor 机制并不是一个完美的解决方案。它需要将所有的依赖都复制到 vendor 目录中,这可能会导致项目的大小变得非常大。另外,这可能会对代码审查和版本控制系统(如 Git)的性能产生负面影响。

因此,从Go 1.11版本开始,使用 Go Modules 进行依赖管理已经成为了推荐的做法,而vendor机制逐渐被淡化。不过,vendor目录并没有被完全废弃。

发表评论

表情:
评论列表 (有 0 条评论,126人围观)

还没有评论,来说两句吧...

相关阅读

    相关 GO mod入门

    借鉴帖子,特别感谢: 作者:会飞的鲶鱼 链接:https://www.jianshu.com/p/c666ebdb462b   Go Module是Go官方在1.11