因为在学习Kubernetes,所以希望能够对Kubernetes的源代码(用Go语言编写)也有所了解,所以需要在本地Windows上安装Go开发IDE。
因为我一直是用的是Intellij Idea Community版本 (Intellij 2018),所以最开始的想法是在Intellij上装个Go的插件来。然并卵,Intellij Go的插件的两个repository添加后,仍然找不到Go插件。然后尝试下载插件到本地从磁盘安装,报不兼容版本的错(Intellij 2018 和 Intellij 2017都是一样的错)。
然后想到Eclipse这个“老家伙“(在用Intellij之前一直用的Eclipse”),果然Eclipse + Goclipse可以作为Go开发IDE。
下面将详细描述如何用Eclipse + GoClipse来配置Go开发IDE。
因为科学上网的原因,Golang的官网(golang.org)无法直接访问。因为这个原因导致后面的Go开发环境的安装和使用都非常不便。
网上有一些文章说可以通过IP地址直接访问,亲测失败,可能是IP地址也被拉黑了。
最后在Golang 中国上下载了Go SDK,下载地址:
https://www.golangtc.com/download
MSI和zip的方式安装上都差不多。
我用的是zip方式,解压后,需要设置GOROOT和PATH变量。GOROOT就相当于Go的Home目录。再在PATH的最后添加%GOROOT%/bin。设置过Java的环境变量的童鞋们对此应该很熟悉,不再废话。
设置完后在命令行中运行go version
来检查是否安装成功。
运行go env
可以查看go相关的环境变量。
在安装完Go SDK后
创建一个新的目录,然后在该目录上创建要给hello.go文件,内容如下:
package main
import "fmt"
func main() {
fmt.Printf("hello world\n")
}
在该目录下,在命令行中运行go run hello.go
来运行程序。
至此,第一个Go程序就完成了。
需要先安装JDK8或更高版本。
安装Eclipse 4.6 (Neon)或更高版本。
[Tips]
建议下载Eclipse时直接下载“Eclipse IDE for Java Developers”的package,而不要下载较小的Installer。
因为Installer在安装Eclipse时还要联网下载,因为科学上网的原因,联网下载会非常慢甚至失败。
Eclipse package下载地址:
http://www.eclipse.org/downloads/eclipse-packages/
Eclipse解压后第一次启动会失败(闪退),需要在eclipse.ini中最前面添加:
-vm
/bin/java.exe
可以采取在线安装的方式或离线的方式安装。
我采用在线安装的方式可以安装成功,如果因为网络的原因,可选离线安装方式。
GoClipse安装指南:
https://github.com/GoClipse/goclipse/blob/latest/documentation/Installation.md#installation
在Eclipse中,打开Windows -> Preferences,找到Go
在Go installation中输入Go SDK的%GOROOT%目录。
在%GOROOT%目录下创建一个子目录,比如work,在Eclipse GOPATH中输入%GOROOT%/work。
下面会在%GOROOT%/work这个目录下编译Go的其它工具。
打开Go -> Tools。
对gocode和godef可以点击Download按钮来从GitHub直接下载。
但是对guru,直接Download会失败,因为Download时试图去从Golang官网下载,而Golang官网已经被拉黑了。
不过因为Golang的代码都是托管在GitHub上的,所以我们可以通过下面的地址来下载Go tools的源代码。
https://github.com/golang/tools
下载后,在%GOROOT%/work/src目录下创建golang.org/x的目录结构,并将上一步git clone的Go tools的tools目录复制到golang.org/x目录下。
在%GOROOT%/work/bin目录下,在命令行中执行(以GitBash为例):
export GOPATH="/work"
go build golang.org/x/tools/cmd/guru
执行命令成功后guru.exe就会生成在%GOROOT%/work/bin目录下。
最后在Eclipse中设置好guru。
[Tips]
1. 不过由于网络原因,这些Go tools可能在使用时候会出现连接超时的错。
在Eclipse中新建一个Go project,再在src下创建一个hello目录,再在hello目录下新建一个hello.go的Go file。内容如下所示:
右键Run as -> Go Application。
[Tips]
1. 如果出错“Executable … doesn’t exist“,请检查hello.go的第一行是否为package main
,Go需要从main package作为程序入口,这一点和Java程序是不同的。