本文介绍 Windows7 x64 基于 IntelliJ IDEA 搭建 Go 语言开发环境。主要是一些操作过程截图以及简单文字描述,如有不清楚的地方​,欢迎指正。所有软件使用当前(2016.12.02)最新版本,旧版或新版可能存在细微差异。

一、网络代理软件 cntlm

从 这里 下载最新 0.92.3 版本 cntlm。cntlm 作用是方便在 Windows 下执行 go get 。参照以下注意事项,并保留监听端口为默认的 3128,其它具体安装及配置参考《cntlm内网代理的代理》。

注意事项:

  1. 确保 cntlm.ini 有以下这些配置项

    Username <工号>

    Domain china

    Auth NTLM

    PassNT <按实际配置>

    PassLM <按实际配置>

    Proxy XXXX:8080

    NoProxy localhost, 127.0.0., 10., 192.168.*

    Listen 3128

  2. 必须安装在默认路径 C:\Program Files (x86)\Cntlm,非默认路径会有 问题

  3. Windows 下的 cntlm 服务不稳定,有时需手动重启下服务恢复,原因未知。我在桌面创建了一个cntlm.bat,如果网络访问有问题,执行 cntlm.bat 重启下服务(可以考虑将 cntlm 放在 Linux 或 docker 中运行,服务会比较稳定。我就把 cntlm 放在 docker 中运行,如果你已有 docker 环境,可以找我要镜像)。

    cntlm.bat 文件内容如下:

    net stop cntlm

    net start cntlm

  4. 安装配置后,记得启动服务,可直接运行 cntlm.bat

二、Go 1.7.4

下载 go1.7.4.windows-amd64.msi,保留默认安装路径(C:\Go\),一路 Next 。

配置环境变量(右击 计算机 -> 高级系统设置 -> 高级 -> 环境变量):

  1. 添加环境变量 GOPATH ,值为 D:\Codes\go

  2. 将 D:\Codes\go\bin 添加到 PATH,方便执行其目录下的程序

三、Git v2.11.0.windows.1

下载 64-bit Git for Windows Setup,保留默认安装路径(C:\Program Files\Git)及所有默认配置,一路 Next。

打开 Git Bash(在桌面右击鼠标 -> Git Bash here),执行 Git 基本配置:

  1. 用户和邮箱

    git config --global user.name XXXX

    git config --global user.email XXXX

  2. 支持长路径

    git config --global core.longpaths true

  3. 导出和提交时不做文本格式转换

    git config --global core.autocrlf false

  4. 配置网络代理,使用上面 cntlm 服务

    git config --global http.proxy 127.0.0.1:3128

  5. 不校验ssl证书

    git config --global http.sslVerify false

四、Go 命令行工具

这篇文章 提到 10+ 个命令行工具,其中比较有用的是 goimports 和 golint,以下以安装这两个工具为例,如需安装其它工具,操作步骤类似。

golang.org/x 仓库即使 FQ 也访问不了,一般做法是从 GitHub 镜像仓库下载,放置在 golang.org/x 对应路径,再执行安装。Git Bash 中执行:

  1. 安装 goimports

    export GOPATH="D:\Codes\go"

    git clone https://github.com/golang/tools.git $GOPATH/src/golang.org/x/tools

    go install golang.org/x/tools/cmd/goimports

  2. 使用 go get 安装 golint(依赖上一步下载的 golang.org/x/tools 包)

    go get -v github.com/golang/lint/golint

如果执行失败,排查上述操作步骤并重启 cntlm 服务,打开一个新的 Git Bash 试试;执行成功会生成两个可执行程序(后面 File Watchers 插件会用到)。

注:开发过程,依赖 GitHub 的包,也可以使用 go get 下载。

五、IntelliJ IDEA 2016.3

下载 IntelliJ IDEA 免费版,保留默认安装路径,一路 Next。

安装后,运行 IDEA:

  1. 如果之前安装过旧版本,继承之前配置选择第1项;否则默认第2项即可

  2. 选择自己喜欢的皮肤,其它一路 Next

六、安装 IDEA 插件

6.1 访问插件仓库需要配置网络代理(安装完插件后,可以去掉配置)

碰到这样的对话框一律"Accept"

或者勾选以下复选框

6.2 搜索并安装 Go 和 File Watchers,2个插件安装完后重启 IDEA

6.3 配置 Go 插件

6.4 创建 hello 工程

工程路径没有要求,建议先放在 D:\Codes\go\src\hello

注意:.idea 和 hello.iml 由 IDEA 自动生成和管理,不要手工修改。

创建 go 源文件 main.go

写一段简单代码,验证运行是否正常

运行结果

6.5 配置 File Watchers 插件

File Watchers 是工程级别的设置,所以要在上一步工程的基础上操作

File -> Settings... -> Tools -> File Watchers

-w $FilePath$

-set_exit_status $FilePath$

将File Watchers 配置导出,保存在用户 home 目录下

以后创建新工程,直接导入该配置,避免重复配置(点第1个按钮切换到用户 home 目录)

编辑 .go 文件后保存,goimports 会对代码进行格式化(这里仅缩进对齐)

格式化后效果如下

golint 会检查编程风格(这里提示变量名不要使用下划线)

七、IDEA 使用

7.1 运行配置

已存在一个配置项 "Build main.go and run"(这是刚才执行运行生成的)

点击左上角 "+" 按钮,可以创建新的运行配置

配置项命名为 hello,以 Package 方式运行 hello 包,可执行程序存放目录、运行目录设置为 D:\Codes\go\bin

下拉框选择 hello,点击执行按钮

生成的可执行文件放置到指定输出目录

7.2 调试

鼠标左击编辑框行号位置,可以打断点,点击调试按钮启动调试

IDEA 使用了 Go 插件自带的 delve 工具进行调试

点击 "Debugger" 标签页可以查看调用栈,变量等信息

7.3 libraries 设置

IDEA 的 Go 工程默认会加载 GOPATH 环境变量,GOPATH 可以配置多个目录,允许代码分散在多个目录中。

关于如何组织代码,是个持续争论的话题...

虽然代码组织方式灵活,但也存在麻烦。在版本控制系统(svn,git)中,如果代码分散在多个地方,很容易漏提交 -- 自己环境上能够运行的工程,遗漏提交其它目录下的依赖包,别人导出的代码运行不了。一种方法是不使用 GOPATH,依赖包通过 vendor 机制和代码放在唯一目录下,也提交到版本库,IDEA 工程仅添加版本库导出目录(bin/pkg/src的父目录)到 "Project libraries"。

八、IDEA 的一些设置

从 File -> Settings... 打开设置窗口

  1. 不打开上次工程

    Appearance & Behavior -> System Settings

    去掉 Startup/Shutdown -> Reopen last project on startup

  2. 退出时不需确认

    Appearance & Behavior -> System Settings

    去掉 Startup/Shutdown -> Confirm application exit

  3. 去掉拼写检查

    Editor -> Inspections

    去掉 Spelling -> Typo

  4. 显示行号

    Editor -> General -> Appearance

    勾选 Show line numbers

  5. 编辑器字体

    Editor -> Colors & Fonts -> Fonts

  6. 控制台字体

    Editor -> Colors & Fonts -> Console Fonts

  7. 换行符

    Editor > Code Style

    Line Separator (for new files),最好设置为 Unix and OSX(\n)

  8. 缩进格式

    Editor -> Code Style -> Go

  9. 终端

    Tools -> Terminal

    Shell Path 设置为 "C:\Program Files\Git\bin\bash.exe" --login -i

    Git Bash 提供比 cmd.exe 多得多的功能,墙裂建议将终端设置为 Git Bash,开发过程可以在其中执行很多命令!

遗留:

IDEA 还支持 MacOS 和 Linux,通过 X Server 能够在 Windows 远程运行 Linux IDEA,​方便调试 Linux 上的代码,后续再补充。

IntelliJ IDEA 搭建 Go 开发环境的更多相关文章

  1. Intellij Idea搭建Spark开发环境

    在Spark高速入门指南 – Spark安装与基础使用中介绍了Spark的安装与配置.在那里还介绍了使用spark-submit提交应用.只是不能使用vim来开发Spark应用.放着IDE的方便不用. ...

  2. Spark(八) -- 使用Intellij Idea搭建Spark开发环境

    Intellij Idea下载地址: 官方下载 选择右下角的Community Edition版本下载安装即可 本文中使用的是windows系统 环境为: jdk1.6.0_45 scala2.10. ...

  3. spark学习10(win下利用Intellij IDEA搭建spark开发环境)

    第一步:启动IntelliJ IDEA,选择Create New Project,然后选择Scala,点击下一步,输入项目名称wujiadong.spark继续下一步 第二步:导入spark-asse ...

  4. 使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(二)

    前言:在使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(一)中已经介绍了如何对web基础环境进行搭建,这里主要演示,如何对spring环境进行搭建,然后 ...

  5. 使用IntelliJ IDEA和Maven管理搭建Web开发环境(以Spring MVC为例)(一)

    前言:原来一直使用MyEclipse,换工作后,新公司使用IDEA,初识IDEA发现,哇,它的快捷键可真多啊,但是一路用下来,觉得非常的好用,特别是利用Maven管理,那简直叫一个爽.当然笔者在使用过 ...

  6. Intellij IDEA使用Maven搭建spark开发环境(scala)

    如何一步一步地在Intellij IDEA使用Maven搭建spark开发环境,并基于scala编写简单的spark中wordcount实例. 1.准备工作 首先需要在你电脑上安装jdk和scala以 ...

  7. 【IntelliJ IDEA新手入门】IDEA如何快速搭建Java开发环境

    作为IntelliJ IDEA mac新手,IDEA如何快速搭建Java开发环境呢? 今天小编就给大家带来了IntelliJ IDEA mac使用教程,想知道IDEA如何快速搭建Java开发环境?那就 ...

  8. 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(二)简单示例

    学习资料:<Activiti实战> 第一章 搭建Activiti开发环境及简单示例 2.5 简单流程图及其执行过程 (1)leave.bpmn 后缀名必须是bpmn.安装了activiti ...

  9. Windows下快速搭建安卓开发环境android-studio

    Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...

随机推荐

  1. 基于Ryu REST API的VLAN实现

    目录 0.预备知识 1.实验内容 2.编写脚本addflow.sh一步实现流表下发 3.使用api查看流表 4.实验结果 0.预备知识 ryu控制器的API文档:ryu.app.ofctl_rest ...

  2. 有效管理进程的几个linux命令

    一般来说,应用程序进程的生命周期有三种主要状态:启动.运行和停止.如果我们想成为称职的管理员,每个状态都可以而且应该得到认真的管理.这八个命令可用于管理进程的整个生命周期. 启动进程 启动进程的最简单 ...

  3. js的 break 和 continue 计算问题

    break和continue: 代码如下: var count=0;    outermost:    for(var i=0;i<10;i++){        for(var j=0;j&l ...

  4. HTTP之缓存

    1. 保持副本的新鲜 HTTP 有一些简单的机制可以在不要求服务器记住有哪些缓存拥有其文档副本的情况下,保持已缓存数据与服务器数据之间充分一致.HTTP 将这些简单的机制称为文档过期(document ...

  5. Async and Await (Stephen Cleary)

    https://blog.stephencleary.com/2012/02/async-and-await.html Most people have already heard about the ...

  6. 20190710记录:去掉中转图,直接以1280*1024进行反坐标计算,填补pbFinal。

    1.记录:去掉中转图,直接以1280*1024进行反坐标计算.pbFinal=1280*1024. // Imagejoint.cpp : 定义控制台应用程序的入口点. // #include &qu ...

  7. 图像质量评价-NQM和WPSNR

    王保全. 基于混合专家模型的快速图像超分辨率方法研究与实现[D]. 2015. PSNR 和SSIM 在有时候并不能很确切的表示图像质量 标准,该论文中根据一定量的人为的感知评分作为参考,用斯皮尔曼等 ...

  8. 超详细MySQL安装及基本使用教程

    一.下载MySQL 首先,去数据库的官网http://www.mysql.com下载MySQL. 点击进入后的首页如下:  然后点击downloads,community,选择MySQL Commun ...

  9. kafka简单学习----遇到的问题

    kafka启动消费者时总是显示disconnected.这是因为 producer client采用2.10.1.0版本,而kafka集群是2.10.0.0版本,不能兼容 解决方法如下:

  10. 深入理解Flink ---- Metrics的内部结构

    从Metrics的使用说起 Flink的Metrics种类有四种Counters, Gauges, Histograms和Meters. 如何使用Metrics呢? 以Counter为例, publi ...