IntelliJ IDEA 搭建 Go 開發環境

本文介紹 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 上的代碼,后續再補充。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,401評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,011評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,263評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,543評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,323評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,874評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,968評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,095評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,605評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,551評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,720評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,242評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,358評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,612評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,330評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,690評論 2 370

推薦閱讀更多精彩內容