IDE专业户 Jetbranins 为Go语言新推出了一款IDE, 名叫 Gogland, 目前还处于 preview 版本,但是已经能正常使用了(https://www.jetbrains.com/go/)。IDE强大的定义跳转功能可以给我们的代码阅读提供极大的便利。本文介绍如何配置Gogland来阅读Consul代码,并不对源码本身做分析。
创建项目目录
通过命令行创建项目目录consul
, 切换到该目录下,克隆项目代码:
mkdir consul
cd consul
git clone git@github.com:hashicorp/consul.git src/github.com/hashicorp/consul --depth=1
这里我们利用 git clone
命令自动创建好了go项目的目录结构,即src/github.com/hashcorp/consul
。
项目导入
打开Gogland,选择”open”, 找到刚刚创建的consul/
目录,点OK:
项目打开后,由于 consul/
目录并不在GOPATH
下,因此会出现很多错误。这里我们并不需要”污染”我们全局的GOPATH
,可以通过IDE设置仅对该项目有效的GOPATH:
菜单栏目点击 Gogland-EAP –> Preferences, 找到go标签下的gopath节点,在右侧Project GOPATH中指定项目目录:
确定以后,IDE依然提示有一些编译错误,这是因为consul的一些依赖没有被下载下来。具体依赖可以在GNUmakefile
中找到:
go get github.com/elazarl/go-bindata-assetfs/...
go get github.com/jteeuwen/go-bindata/...
go get github.com/mitchellh/gox
go get golang.org/x/tools/cmd/cover
go get golang.org/x/tools/cmd/stringer
执行完这些go get后编译错误可完全消息,此时就能使用IDE定义跳转功能了。
通过IDE运行项目
点击菜单中的 Run –> Edit Configurations, 配置如下图:
注意 Run kind 要选择 Package, Package path 就是项目的包名。
完成以后就能直接通过IDE运行、调试项目了。
温馨提示:先在命令行执行一次 go install, 能大大加快以后每次从IDE运行的编译速度。