golang 1.18 workspace mode

发布时间 2023-09-25 14:41:38作者: vx_guanchaoguo0

why ? 为什么需要workspace

  • 历史发展和版本依赖的管理

GOPATH 最开始的模式

  • 开发者需要设置一个环境变量 GOPATH,用于指定项目的工作空间。GOPATH 是一个目录路径,其中包括了三个重要的子目录:src、bin 和 pkg
  • 通过 go get 命令,GOPATH/src 下的相应目录中
  • 缺点 :
    • 必须指定GOPATH 目录
    • 全部项目必须全局共享一个依赖目录
    • 如何出现两个项目依赖的用一个库的版本不同 出现冲突切无法处理

改进的版本 Go Modules

  • Go Modules 是从 Go 1.11 版本开始引入
  • 没有必须指定GOPATH 目录
  • 每个新项目都有自己的依赖有效的处理版本冲突
  • 甚至引入 go mod vendor 离线构建和更精确地控制依赖版本
  • 缺点 :
    • 如何多个Modules之间项目依赖 使用 repace 替换

最终的 workspace mode Go1.18

  • 在Modules上面构建一层通用管理层 go.wrok
  • 使用 use 关键词 引入 Modules