第九章(包结构)【包管理】

GOPATH和GOMODULE

GOPATH和GOMODULE都是go的包管理工具

  • 在Go创世初期时使用go get 来获取所有源并将其存储在 $GOPATH/src中(GOPATH模式)。 没有版本控制

  • 在Go 1.11引入了GoMODULE。 Go Modules不使用GOPATH存储软件包。将其存储在$GOPATH/pkg/mod。使用go.mod文件标记软件包的版本并追踪每个包的版本

  • 所以说go就有了两个包管理工具,为了兼容老项目,所以两个包管理方式就并存了。

  • go env 有GO111MODULE配置项

    • GO111MODULE=on时:强制使用GoMODULE
    • GO111MODULE=off时:强制使用GOPATH
    • GO111MODULE=auto(默认)时:这时候就看项目路径了,当项目路径在GOPATH目录时则使用GOPATH模式,否则使用GOMODULE.

GO111MODULE=auto可能版本不同语意稍有不同,go1.13通过判断go.mod文件是否存在来决定使用哪个模式

posted @ 2023-02-09 22:10  巴达克  阅读(3)  评论(0编辑  收藏  举报