从 Go 1.8 版本开始,Go 开发包在安装完成后,将 GOPATH 赋予了一个默认的目录,参见下表
在Jetbrains 公司的 GoLand 集成开发环境(IDE)中GOPATH分两种:
1、Global GOPATH
2、Project GOPATH
Global GOPATH与Project GOPATH 都代表项目所使用的 GOPATH,该设置会被保存在工作目录的 .idea 目录下,不会被设置到环境变量的 GOPATH 中,但会在编译时使用到这个目录。建议在开发时只填写项目 GOPATH,每一个项目尽量只设置一个 GOPATH,不使用多个 GOPATH 和全局的 GOPATH。
在IDE中如果这两个都不设置,那默认会选择GOPATH的环境变量,也就是安装Go时GOPATH被赋予的默认目录。
设置GOPATH后,工程中使用import的根目录是GOPATH中的src目录
如果GOPATH为/Users/cheny/myproject/go ,工程为/Users/cheny/myproject/go/src/MyGoProject
那么MyGoProject中使用import
导入本地包的时候就是这样
import "MyGoProject/myLibs" // myLibs为包名
也就是说GOPATH下必须要有src目录,不然import
导包的时候会找不到
import
导包规则: 先去GOROOT/src/路径下找
/usr/local/go/src/myLibs (from $GOROOT)
如果没有就去Project GOPATH/src/路径下找
/Users/cheny/myproject/go/src/myLibs (from $GOPATH)
如果还没找到就去Global GOPATH下面找(当然前提是你需要设置了Global GOPATH)
在IDE中创建项目的时候有个index entire GOPATH选择框,如果勾选了,那所有GOPATH中的src文件夹所包含的内容都会通过依赖包的形式引入并显示出来(如果不勾选GOPATH也会被引入),如下图所示