在说GOPATH之前,先说说GO语言的项目结构:
1、Go语言中组织单元最大的为项目,项目下包含包。一个包可以有多个文件
2、包在物理层面上就是文件夹。同一个文件夹中多个文件的package必须相同,一般package和所在的文件夹名称相同
3、Goland中的标准GO项目:
Src目录:需要手动创建,和main.go是同一级别的目录
Go语言必须要求配置GOPATH环境变量,告诉系统项目的路径
Go编译器在寻找包时的顺序:GOPATH/src -----> GOROOT/src
GOPATH/src中未寻找到需要的包,才到GOROOT/src目录下寻找。一般在Goland这种IDE,只需要在IDE中配置GOPATH即可。
这让我想起了从github上拉取下来的一个PlantUML项目,起初我死活是编译通不过的。学习了GOPATH后我好想知道是为什么了。因为我没有配置GOPATH,并且是直接在命令行中使用 go build 构建,这能构建成功才有鬼了。除非是在Goland中打开,IDE会提示进行配置,这尴尬的