1. 介绍

golang优秀的开源项目挺多,抽点空也准备学习下golang。这里就简单介绍下如何用idea搭建golang开发环境

2. 基本准备

2.1 go

go官网下载最新的安装包安装。解压后配置下环境变量GOPATH(工作目录)和GOROOT(GO的安装目录)

我的配置是这样的:

GOPATH=C:\Go\
GOROOT=C:\GoProjects;C:\GoProjects\src\docker;C:\GoProjects\src\learning

关于GOROOT的设置可以看下第三节的“项目组织”

2.2 idea

idea安装go插件。这个搜索下插件安装即可。注意IDEA里面用的GOPATH等环境变量需要重启机器才能生效(Windows下)

装完插件新建个GO项目,会提醒你指定GO的SDK还有GOROOT,GOPATH的。

注意运行的时候选择Go Application来运行,这样才可以进行DEBUG。采用Go single file是不能DEBUG的。

3. 项目组织

一般GOROOT来指明一个工作空间。但是现在用govendor来做依赖管理,对项目的目录结构有要求,必须要在src目录下。所以我们自己的单独的项目就放到$GOROOT/src下即可。

基本多工程的组织可以如下来组织。vendor目录存放一些项目依赖的“构件”。这里有点maven构件的意思。构件不能轻易改动,一般需要用godep这样的工具save到vendor目录里面。

再来回顾我的GOPATH的设置。GOPATH可以设置多个工作路径。第一个一般就是多个工程的顶级根工作区间。之所以后面还必须显式的去添加具体工程的目录,是为了让IDEA找得到对应工程里面的vendor依赖。如果环境变量里面不进行显式的指定,IDEA则无法从GOPATH里面获取工程的工作区间。也就无法找到vendor目录。

由于我显式在环境变量里面指定了,在设置里面可以看到我引用了GOPATH里面的各个工程

IDEA是支持vendor的,如下图所示。所以只要在GOPATH中找到了项目位置,就可以自动引用vendor目录下的依赖库了。值得注意的是,如果直接在Global libraries里面加入项目的路径,是不会自动识别vendor目录的。这个有点坑爹,希望早点改进啊!!!

4. 运行一个example

上面配置好了你就可以写代码了。

这里创建一个主方法运行下:

//注意必须要属于main包才可以直接运行。
package main

import "fmt"

func main() {
    fmt.Println("Hello, world")
}

PS: 这里注意下,一般来说package后面跟的就是所在的包的名字。但是main不一样,可以和所在的包的名字不同。另外注意下,在GO里面一个包下的文件,必须都属于一个package。除非你再新建一个子包。

5. 安装一些常用第三方库

可以使用go get 来下载一些第三方库,下载来都会保存到$GOPATH下面。

go get -u -v github.com/kardianos/govendor
go get -u -v github.com/tools/godep