为什么不再建议使用GOPATH以及如何使用Go Modules

原因: 有了 Go Modules#

历史:#

一个环境变量,用于编译项目时,告诉 GO 去哪里读取源文件

  • 带来的限制规则:
    • 要求将项目写在 GOPATH 下
    • 需根据项目实际的 URL 路径创建目录,如 github.com/foo/bar => $GOPATH/src/github.com/foo/bar
    • 没有内置的对扩展包的版本追踪

有了 Go Modules 之后#

  • 一行命令迁移旧有项目
  • 只影响开发环境,不影响生产环境
  • 兼容 GOPATH,依然可以依据个人喜好,在使用 GOPATH

转向 Go Modules#

  • 版本要求 >=1.11

  • go mod init 命令初始化,如:

    mkdir myProject/
    cd myProject
    go mod init github.com/myGithubName/myProject
    
  • GOPATH 项目迁移,如:

    mv ~/go/src/github.com/myGithubName/myProject ~/anywhere_else/
    cd ~/anywhere_else/myProject
    go mod init github.com/myGithubName/myProject

    以上内容整理自: medium.com/@vingarcia00/golang-why...
    另外,使用 Goland IDE 的话,打开 Settings,在 Go -> Go Modules (vgo) ,勾选 Enable Go Modules (vgo) Integration,不然扩展包无法被识别到。

本作品采用《CC 协议》,转载必须注明作者和本文链接
Was mich nicht umbringt, macht mich stärker