Go环境变量问题

Go找包的顺序

go 找导入包的顺序是先在GOROOT下的src目录查找,如果找不到就在当前项目路径下的src,GOPATH就是当前项目路径

/usr/local/go/src  (from  $GOROOT)
$GOPATH/src (from $GOPATH)

GOPATH目录设置

在goland中,我们设置项目的GOPATH只需要在 Project GOPATH 中设置当前项目目录就可以了,Global GOPATH 不需要设置,默认是全局的GOPATH在这里,我的全局GOPATH是 /Users/zhangyun/go我的项目目录是/Users/zhangyun/godemo/src/Go_learning,所以我们设置Project PATH为/Users/zhangyun/godemo


创建项目目录路径设置

在创建项目的时候只要改红色框内的路径就可以了,src是必须有的,所有的库都得在src下


单独关闭GO111MODULE

在 Goland 的Terminal 中输入

export GO111MODULE=off

查当前项目的 GOPATH 路径

echo $GOPATH   // 在 golang 的 Terminal 中输入

如果当前项目的GOPATH不是当前目录的src前面的路径,那么使用

export GOPATH=当前目录路径的src前

全局更改GO配置

go env -w 你要改的配置

go env -w GOPATH=$HOME/godemo  // 更改全局 GOPATH
go env -w GO111MODULE=off   // 关闭全部 GO111MODULE
go env -w GO111MODULE=on    // 启动全部 GO111MODULE

GOPATH 管理库多项目管理不同版本库

在GO中我们开发多个项目,可能会用到两个组开发项目用同一个支持库,但是使用的支持库的版本不一样,这个时候就要用到以下方法
我们在各自的项目下新建一个 vendor 目录,把各自的库移到 vendor目录下,这样在启动项目的时候,查找库首先进当先前项目的 vendor 目录查找库,这样两个项目就不会出现库版本不同的问题

~/godemo
    - src
        - go.uber.org
            - atomic
            - multierr
            - zap
        - project1
            - vendor
                - go.uber.org
                    - zap   // 新版本
        - project2
            - vendor
                - go.uber.org
                    - zap  // 老版本

你可能感兴趣的:(Go环境变量问题)