IntelliJ IDEA 搭建 Go 開(kāi)發(fā)環(huán)境

本文介紹 Windows7 x64 基于 IntelliJ IDEA 搭建 Go 語(yǔ)言開(kāi)發(fā)環(huán)境撩扒。主要是一些操作過(guò)程截圖以及簡(jiǎn)單文字描述栋烤,如有不清楚的地方?沽甥,歡迎指正屯换。所有軟件使用當(dāng)前(2016.12.02)最新版本杠娱,舊版或新版可能存在細(xì)微差異挽牢。

一、網(wǎng)絡(luò)代理軟件 cntlm
從 這里 下載最新 0.92.3 版本 cntlm摊求。cntlm 作用是方便在 Windows 下執(zhí)行 go get 禽拔。參照以下注意事項(xiàng),并保留監(jiān)聽(tīng)端口為默認(rèn)的 3128室叉,其它具體安裝及配置參考《cntlm內(nèi)網(wǎng)代理的代理》睹栖。
注意事項(xiàng):

  1. 確保 cntlm.ini 有以下這些配置項(xiàng)
    Username <工號(hào)>
    Domain china
    Auth NTLM
    PassNT <按實(shí)際配置>
    PassLM <按實(shí)際配置>
    Proxy XXXX:8080
    NoProxy localhost, 127.0.0., 10., 192.168.*
    Listen 3128

  2. 必須安裝在默認(rèn)路徑 C:\Program Files (x86)\Cntlm,非默認(rèn)路徑會(huì)有 問(wèn)題

  3. Windows 下的 cntlm 服務(wù)不穩(wěn)定茧痕,有時(shí)需手動(dòng)重啟下服務(wù)恢復(fù)野来,原因未知。我在桌面創(chuàng)建了一個(gè)cntlm.bat踪旷,如果網(wǎng)絡(luò)訪問(wèn)有問(wèn)題曼氛,執(zhí)行 cntlm.bat 重啟下服務(wù)(可以考慮將 cntlm 放在 Linux 或 docker 中運(yùn)行,服務(wù)會(huì)比較穩(wěn)定埃脏。我就把 cntlm 放在 docker 中運(yùn)行搪锣,如果你已有 docker 環(huán)境,可以找我要鏡像)彩掐。
    cntlm.bat 文件內(nèi)容如下:
    net stop cntlm
    net start cntlm

  4. 安裝配置后构舟,記得啟動(dòng)服務(wù),可直接運(yùn)行 cntlm.bat

二堵幽、Go 1.7.4
下載 go1.7.4.windows-amd64.msi狗超,保留默認(rèn)安裝路徑(C:\Go\),一路 Next 朴下。
配置環(huán)境變量(右擊 計(jì)算機(jī) -> 高級(jí)系統(tǒng)設(shè)置 -> 高級(jí) -> 環(huán)境變量):

  1. 添加環(huán)境變量 GOPATH 努咐,值為 D:\Codes\go

  2. 將 D:\Codes\go\bin 添加到 PATH,方便執(zhí)行其目錄下的程序

三殴胧、Git v2.11.0.windows.1
下載 64-bit Git for Windows Setup渗稍,保留默認(rèn)安裝路徑(C:\Program Files\Git)及所有默認(rèn)配置佩迟,一路 Next。

打開(kāi) Git Bash(在桌面右擊鼠標(biāo) -> Git Bash here)竿屹,執(zhí)行 Git 基本配置:

  1. 用戶和郵箱
    git config --global user.name XXXX
    git config --global user.email XXXX

  2. 支持長(zhǎng)路徑
    git config --global core.longpaths true

  3. 導(dǎo)出和提交時(shí)不做文本格式轉(zhuǎn)換
    git config --global core.autocrlf false

  4. 配置網(wǎng)絡(luò)代理报强,使用上面 cntlm 服務(wù)
    git config --global http.proxy 127.0.0.1:3128

  5. 不校驗(yàn)ssl證書
    git config --global http.sslVerify false

四、Go 命令行工具
這篇文章 提到 10+ 個(gè)命令行工具拱燃,其中比較有用的是 goimports 和 golint秉溉,以下以安裝這兩個(gè)工具為例,如需安裝其它工具碗誉,操作步驟類似召嘶。
golang.org/x 倉(cāng)庫(kù)即使 FQ 也訪問(wèn)不了,一般做法是從 GitHub 鏡像倉(cāng)庫(kù)下載哮缺,放置在 golang.org/x 對(duì)應(yīng)路徑弄跌,再執(zhí)行安裝。Git Bash 中執(zhí)行:

  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

如果執(zhí)行失敗蝴蜓,排查上述操作步驟并重啟 cntlm 服務(wù)碟绑,打開(kāi)一個(gè)新的 Git Bash 試試;執(zhí)行成功會(huì)生成兩個(gè)可執(zhí)行程序(后面 File Watchers 插件會(huì)用到)茎匠。

注:開(kāi)發(fā)過(guò)程格仲,依賴 GitHub 的包,也可以使用 go get 下載诵冒。

五凯肋、IntelliJ IDEA 2016.3
下載 IntelliJ IDEA 免費(fèi)版,保留默認(rèn)安裝路徑汽馋,一路 Next侮东。

安裝后,運(yùn)行 IDEA:

  1. 如果之前安裝過(guò)舊版本豹芯,繼承之前配置選擇第1項(xiàng)悄雅;否則默認(rèn)第2項(xiàng)即可

  2. 選擇自己喜歡的皮膚,其它一路 Next

六铁蹈、安裝 IDEA 插件
6.1 訪問(wèn)插件倉(cāng)庫(kù)需要配置網(wǎng)絡(luò)代理(安裝完插件后宽闲,可以去掉配置)

碰到這樣的對(duì)話框一律"Accept"

或者勾選以下復(fù)選框

6.2 搜索并安裝 Go 和 File Watchers,2個(gè)插件安裝完后重啟 IDEA

6.3 配置 Go 插件

6.4 創(chuàng)建 hello 工程

工程路徑?jīng)]有要求握牧,建議先放在 D:\Codes\go\src\hello

注意:.idea 和 hello.iml 由 IDEA 自動(dòng)生成和管理容诬,不要手工修改。

創(chuàng)建 go 源文件 main.go

寫一段簡(jiǎn)單代碼沿腰,驗(yàn)證運(yùn)行是否正常

運(yùn)行結(jié)果

6.5 配置 File Watchers 插件
File Watchers 是工程級(jí)別的設(shè)置览徒,所以要在上一步工程的基礎(chǔ)上操作
File -> Settings... -> Tools -> File Watchers

-w $FilePath$

-set_exit_status $FilePath$

將File Watchers 配置導(dǎo)出,保存在用戶 home 目錄下

以后創(chuàng)建新工程颂龙,直接導(dǎo)入該配置习蓬,避免重復(fù)配置(點(diǎn)第1個(gè)按鈕切換到用戶 home 目錄)

編輯 .go 文件后保存纽什,goimports 會(huì)對(duì)代碼進(jìn)行格式化(這里僅縮進(jìn)對(duì)齊)

格式化后效果如下

golint 會(huì)檢查編程風(fēng)格(這里提示變量名不要使用下劃線)

七、IDEA 使用
7.1 運(yùn)行配置

已存在一個(gè)配置項(xiàng) "Build main.go and run"(這是剛才執(zhí)行運(yùn)行生成的)

點(diǎn)擊左上角 "+" 按鈕友雳,可以創(chuàng)建新的運(yùn)行配置

配置項(xiàng)命名為 hello稿湿,以 Package 方式運(yùn)行 hello 包,可執(zhí)行程序存放目錄押赊、運(yùn)行目錄設(shè)置為 D:\Codes\go\bin

下拉框選擇 hello,點(diǎn)擊執(zhí)行按鈕

生成的可執(zhí)行文件放置到指定輸出目錄

7.2 調(diào)試
鼠標(biāo)左擊編輯框行號(hào)位置包斑,可以打斷點(diǎn)流礁,點(diǎn)擊調(diào)試按鈕啟動(dòng)調(diào)試

IDEA 使用了 Go 插件自帶的 delve 工具進(jìn)行調(diào)試

點(diǎn)擊 "Debugger" 標(biāo)簽頁(yè)可以查看調(diào)用棧,變量等信息

7.3 libraries 設(shè)置
IDEA 的 Go 工程默認(rèn)會(huì)加載 GOPATH 環(huán)境變量罗丰,GOPATH 可以配置多個(gè)目錄神帅,允許代碼分散在多個(gè)目錄中。
關(guān)于如何組織代碼萌抵,是個(gè)持續(xù)爭(zhēng)論的話題...

雖然代碼組織方式靈活找御,但也存在麻煩。在版本控制系統(tǒng)(svn绍填,git)中霎桅,如果代碼分散在多個(gè)地方,很容易漏提交 -- 自己環(huán)境上能夠運(yùn)行的工程讨永,遺漏提交其它目錄下的依賴包滔驶,別人導(dǎo)出的代碼運(yùn)行不了。一種方法是不使用 GOPATH卿闹,依賴包通過(guò) vendor 機(jī)制和代碼放在唯一目錄下揭糕,也提交到版本庫(kù),IDEA 工程僅添加版本庫(kù)導(dǎo)出目錄(bin/pkg/src的父目錄)到 "Project libraries"锻霎。

八著角、IDEA 的一些設(shè)置
從 File -> Settings... 打開(kāi)設(shè)置窗口

  1. 不打開(kāi)上次工程
    Appearance & Behavior -> System Settings
    去掉 Startup/Shutdown -> Reopen last project on startup

  2. 退出時(shí)不需確認(rèn)
    Appearance & Behavior -> System Settings
    去掉 Startup/Shutdown -> Confirm application exit

  3. 去掉拼寫檢查
    Editor -> Inspections
    去掉 Spelling -> Typo

  4. 顯示行號(hào)
    Editor -> General -> Appearance
    勾選 Show line numbers

  5. 編輯器字體
    Editor -> Colors & Fonts -> Fonts

  6. 控制臺(tái)字體
    Editor -> Colors & Fonts -> Console Fonts

  7. 換行符
    Editor > Code Style
    Line Separator (for new files),最好設(shè)置為 Unix and OSX(\n)

  8. 縮進(jìn)格式
    Editor -> Code Style -> Go

  9. 終端
    Tools -> Terminal
    Shell Path 設(shè)置為 "C:\Program Files\Git\bin\bash.exe" --login -i
    Git Bash 提供比 cmd.exe 多得多的功能旋恼,墻裂建議將終端設(shè)置為 Git Bash吏口,開(kāi)發(fā)過(guò)程可以在其中執(zhí)行很多命令!

遺留:
IDEA 還支持 MacOS 和 Linux蚌铜,通過(guò) X Server 能夠在 Windows 遠(yuǎn)程運(yùn)行 Linux IDEA锨侯,?方便調(diào)試 Linux 上的代碼,后續(xù)再補(bǔ)充冬殃。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末囚痴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子审葬,更是在濱河造成了極大的恐慌深滚,老刑警劉巖奕谭,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異痴荐,居然都是意外死亡血柳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門生兆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)难捌,“玉大人,你說(shuō)我怎么就攤上這事鸦难「酰” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵合蔽,是天一觀的道長(zhǎng)击敌。 經(jīng)常有香客問(wèn)我,道長(zhǎng)拴事,這世上最難降的妖魔是什么沃斤? 我笑而不...
    開(kāi)封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮刃宵,結(jié)果婚禮上衡瓶,老公的妹妹穿的比我還像新娘。我一直安慰自己组去,他們只是感情好鞍陨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著从隆,像睡著了一般诚撵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上键闺,一...
    開(kāi)封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天寿烟,我揣著相機(jī)與錄音,去河邊找鬼辛燥。 笑死筛武,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挎塌。 我是一名探鬼主播徘六,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榴都!你這毒婦竟也來(lái)了待锈?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嘴高,失蹤者是張志新(化名)和其女友劉穎竿音,沒(méi)想到半個(gè)月后和屎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡春瞬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年柴信,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宽气。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡随常,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抹竹,到底是詐尸還是另有隱情线罕,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布窃判,位于F島的核電站,受9級(jí)特大地震影響喇闸,放射性物質(zhì)發(fā)生泄漏袄琳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一燃乍、第九天 我趴在偏房一處隱蔽的房頂上張望唆樊。 院中可真熱鬧,春花似錦刻蟹、人聲如沸逗旁。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)片效。三九已至,卻和暖如春英古,著一層夾襖步出監(jiān)牢的瞬間淀衣,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工召调, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留膨桥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓唠叛,卻偏偏與公主長(zhǎng)得像只嚣,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子艺沼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容