一. IntelliJ IDEA安裝及配置
1.1 IntelliJ IDEA下載及安裝
首先在 CHOOSE YOUR EDITION 這里選擇Community
版本,這個(gè)版本是免費(fèi)提供的化漆,對(duì)我們的Spark使用來(lái)說(shuō),用這個(gè)版本已經(jīng)足夠了贫导。如下圖所示:
直接點(diǎn)擊黑色的 DOWNLOAD
按鈕會(huì)默認(rèn)開(kāi)始下載Windows版本的IntelliJ IDEA
烹玉,如果需要其他平臺(tái)的版本叁幢,可以點(diǎn)擊旁邊的 .EXE
卖宠,然后在打開(kāi)的下拉菜單中巍杈,選擇相應(yīng)平臺(tái)即可。
下載完成后扛伍,雙擊得到的.exe
文件(我這里主要以Windows平臺(tái)為例筷畦,下載得到的文件為ideaIC-2016.2.1.exe
),開(kāi)始進(jìn)行安裝蜒秤,其中所有選項(xiàng)按照默認(rèn)的即可(其中有一個(gè)安裝路徑的配置汁咏,按照普通軟件安裝的方法自行設(shè)置即可,當(dāng)然使用默認(rèn)的路徑也可以作媚,記住這里的安裝路徑,后面要用到)帅刊,一路點(diǎn)擊Next
纸泡,最后點(diǎn)擊Finish
按鈕結(jié)束安裝過(guò)程。
默認(rèn)情況下,IntelliJ IDEA
并不會(huì)在桌面上創(chuàng)建快捷鍵女揭,我們可以去它的安裝目錄下的bin
文件夾中蚤假,找到它的可執(zhí)行.exe
文件,我這里的bin
文件夾路徑是C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.2.1\bin
吧兔,在該目錄下磷仰,你可以找到兩個(gè)如下的文件:
idea.exe//對(duì)應(yīng)32位機(jī)器
idea64.exe//對(duì)應(yīng)64位機(jī)器
根據(jù)自己電腦是32位還是64位的,進(jìn)行相應(yīng)版本的選擇境蔼,如果怕麻煩灶平,建議在該文件上點(diǎn)擊右鍵,然后選擇發(fā)送到
--> 桌面快捷方式
選項(xiàng)箍土,這樣以后在啟動(dòng)的時(shí)候逢享,直接在桌面上雙擊快捷方式即可(如果是細(xì)心的讀者,其實(shí)可以發(fā)現(xiàn)吴藻,在IDEA安裝過(guò)程中瞒爬,其中有一個(gè)步驟就是問(wèn):需不需要在桌面上創(chuàng)建快捷方式,默認(rèn)下是不會(huì)創(chuàng)建的)沟堡。
選擇好32位還是64位的文件后侧但,然后雙擊運(yùn)行IntelliJ IDEA,一般來(lái)說(shuō)首次運(yùn)行航罗,都會(huì)碰到如下頁(yè)面:
因?yàn)镮ntelliJ IDEA本身都會(huì)有一些配置文件俊犯,所以這里在詢問(wèn)是否需要導(dǎo)入一個(gè)配置文件,這里選擇圖中標(biāo)示的選項(xiàng)即可伤哺,并點(diǎn)擊OK
燕侠。然后來(lái)到如下所示的UI主題選擇界面,大多數(shù)使用IntelliJ IDEA的開(kāi)發(fā)人員立莉,一般都會(huì)毫無(wú)例外的選用第二個(gè)UI绢彤,這種灰黑色的主題簡(jiǎn)潔大方音念,給人一種深邃的質(zhì)感崖蜜,也確實(shí)是很多人選擇IntelliJ IDEA的一個(gè)重要原因之一窿祥,用很多人的話說(shuō)萧锉,寫(xiě)代碼都能寫(xiě)出“高潮”來(lái)祥山,是否屬實(shí)膀篮,你們?cè)囋嚲椭懒恕?/p>
1.2 Scala插件的安裝
后續(xù)的幾個(gè)頁(yè)面按照默認(rèn)的配置即可察滑,一直Next
來(lái)到下面的界面毒坛。因?yàn)槲覀冎饕肧cala來(lái)寫(xiě)Spark程序有勾,而IntelliJ IDEA需要使用Scala插件來(lái)支持Scala疹启,安裝方法如下圖所示,首先點(diǎn)擊Configure
蔼卡,然后點(diǎn)擊下拉菜單中的Plugins
喊崖。
隨后打開(kāi)的頁(yè)面會(huì)顯示出IntelliJ IDEA當(dāng)前已安裝的插件列表,現(xiàn)在我們要安裝Scala插件,所以點(diǎn)擊頁(yè)面左下方的Install JetBrains plugin...
按鈕荤懂,然后來(lái)到安裝插件的頁(yè)面茁裙,如果網(wǎng)絡(luò)正常的話,在頁(yè)面左上方的搜索框內(nèi)搜索"scala"节仿,即可出現(xiàn)Scala插件的安裝界面晤锥,點(diǎn)擊右側(cè)頁(yè)面中的Install
進(jìn)行安裝后,可以看到安裝的進(jìn)度條廊宪,如下圖所示:
但是如果你在公司內(nèi)網(wǎng)矾瘾,這個(gè)時(shí)候你可能需要配置代理,步驟如下圖所示挤忙,在圖中的Host name
和Port number
中填寫(xiě)公司自己的代理即可霜威,如果需要,在下方的賬號(hào)和密碼框中按情況填寫(xiě)上相應(yīng)信息册烈。填寫(xiě)完畢戈泼,記得先檢查一下是否能夠正確連上外部網(wǎng)絡(luò),可以點(diǎn)擊圖中的Check connection
赏僧,輸入一個(gè)外網(wǎng)的地址大猛,比如http://www.baidu.com/
,測(cè)試一下代理是否正確配置了淀零。一切正常后挽绩,點(diǎn)擊OK
退出即可。然后按照上一步中不需要配置代理的情況下驾中,進(jìn)行Scala插件的安裝唉堪。
注意:插件安裝完了之后,記得重啟一下IntelliJ IDEA使得插件能夠生效肩民。
1.3 全局JDK和Library的設(shè)置
因?yàn)镾cala代碼的編寫(xiě)需要依賴JDK唠亚,并且以后編寫(xiě)Spark的程序,肯定會(huì)用到各種外部Jar包持痰,如果自己手動(dòng)去下載這些Jar包然后再引入項(xiàng)目灶搜,不僅費(fèi)時(shí)費(fèi)力,而且尤其在多人協(xié)作開(kāi)發(fā)一個(gè)項(xiàng)目的時(shí)候工窍,各種Jar包版本的管理將會(huì)變得非掣盥簦混亂,因此患雏,在這里建議:從一開(kāi)始就習(xí)慣來(lái)用Maven對(duì)項(xiàng)目依賴到的Jar包進(jìn)行理(后面會(huì)講到Maven)鹏溯,然而在創(chuàng)建Maven工程的時(shí)候,首先便需要指定JDK纵苛。
因此為了后續(xù)創(chuàng)建Spark項(xiàng)目(正如上面所說(shuō)剿涮,一方面是Scala本身需要依賴JDK言津,另一方面用來(lái)管理項(xiàng)目構(gòu)建的Maven攻人,其創(chuàng)建也需要依賴JDK)的時(shí)候不用每次都去配置JDK取试,這里先進(jìn)行一次全局配置。首先在歡迎界面點(diǎn)擊Configure
怀吻,然后在Project Defaults
的下拉菜單中選擇Project Structure
瞬浓,如下圖所示:
然后在打開(kāi)的Default Project Structure
界面的左側(cè)邊欄選擇Project
,在右側(cè)打開(kāi)的頁(yè)面中創(chuàng)建一個(gè)新的JDK選項(xiàng)(一定要本機(jī)已經(jīng)安裝過(guò)JDK了)蓬坡,如下圖所示步驟在下拉菜單中點(diǎn)擊JDK
后猿棉,在打開(kāi)的對(duì)話框中選擇你所安裝JDK的位置,注意是JDK安裝的根目錄屑咳,不是bin文件夾的目錄萨赁,如果你對(duì)上一篇文章中講到的JAVA_HOME
還很有印象的話,這里的目錄就是JAVA_HOME
中設(shè)置的目錄兆龙。
這一步的全局Project JDK
設(shè)置完畢后杖爽,回到歡迎頁(yè)面。
除了要依賴JDK之外紫皇,Scala的編寫(xiě)肯定也離開(kāi)不了自身的SDK(全稱為Software Development Kit慰安,即軟件開(kāi)發(fā)工具包。實(shí)際上聪铺,JDK就是Java的SDK)化焕,我們?cè)贗ntelliJ IDEA編寫(xiě)Scala的程序的時(shí)候,比如要用到Scala自身提供的某個(gè)類铃剔,比如Seq
(暫時(shí)不知道不要緊撒桨,后續(xù)文章會(huì)講到),那IntelliJ IDEA到哪里去找這個(gè)Seq
呢键兜?只能去Scala自身提供的SDK里面去找凤类,因此各種程序語(yǔ)言的軟件開(kāi)發(fā)者,是離不開(kāi)這些語(yǔ)言的SDK的蝶押,Scala也自然不例外踱蠢。而為了避免每次創(chuàng)建一個(gè)Scala工程的時(shí)候,都要去設(shè)置一遍Scala的SDK棋电,這里做一些全局配置茎截,主要是將Scala SDK引入到項(xiàng)目的Library中,并將其當(dāng)做默認(rèn)配置赶盔。
首先企锌,在歡迎頁(yè)面的右下角點(diǎn)擊Configure
,然后在Project Defaults
的下拉菜單中選擇Project Structure
于未,在打開(kāi)的頁(yè)面左側(cè)選擇Global Libraries
撕攒,然后在中間一欄中有一個(gè)綠色的加號(hào)標(biāo)志 +
陡鹃,點(diǎn)擊后在下拉菜單中選擇 Scala SDK
(如果沒(méi)有的話,回顧上面的步驟抖坪,仔細(xì)觀察一下是不是有哪些步驟錯(cuò)了萍鲸,比如Scala的插件沒(méi)安裝成功,本機(jī)還未安裝Scala擦俐,亦或者Scala的bin文件夾路徑未能添加到系統(tǒng)的 PATH 環(huán)境變量中去等等)脊阴,然后在打開(kāi)的對(duì)話框中選擇系統(tǒng)本身所安裝的Scala(即System對(duì)應(yīng)的版本),點(diǎn)擊OK
確定蚯瞧,這時(shí)候會(huì)在中間一欄位置處出現(xiàn)Scala的SDK嘿期,在其上右鍵點(diǎn)擊后選擇Copy to Project Libraries...
,這個(gè)操作是為了將Scala SDK添加到項(xiàng)目的默認(rèn)Library中去埋合。整個(gè)流程如下面的動(dòng)圖所示备徐。
二. 創(chuàng)建一個(gè)Maven工程
2.1 創(chuàng)建Maven工程
上面的安裝和配置都完成后,現(xiàn)在可以開(kāi)始創(chuàng)建一個(gè)Maven工程了甚颂。
在歡迎界面點(diǎn)擊Create New Project
蜜猾,在打開(kāi)的頁(yè)面左側(cè)邊欄中,選擇Maven
西设,然后在右側(cè)的Project SDK
一項(xiàng)中瓣铣,查看是否是正確的JDK配置項(xiàng)(如果每一步嚴(yán)格按照上文中的步驟操作的話,正常來(lái)說(shuō)這一欄會(huì)自動(dòng)填充的贷揽,因?yàn)槲覀冎霸?.3中已經(jīng)配置過(guò)了全局的Project JDK了棠笑,如果這里沒(méi)有正常顯示JDK的話,可以點(diǎn)擊右側(cè)的New...
按鈕禽绪,然后指定JDK安裝路徑的根目錄即可)蓖救,然后點(diǎn)擊Next
,來(lái)到Maven項(xiàng)目最重要三個(gè)參數(shù)的設(shè)置頁(yè)面印屁,這三個(gè)參數(shù)分別為:GroupId
, ArtifactId
和Version
.
為了更好的解釋這三個(gè)字段循捺,用Spark 1.6.2的核心組件的Maven標(biāo)識(shí)符為例來(lái)進(jìn)行講解。
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.6.2</version>
- GroupId雄人,可以理解為用來(lái)標(biāo)志你整個(gè)項(xiàng)目組的从橘,或者你這些代碼屬于某一個(gè)完整的項(xiàng)目,比如上面的
org.apache.spark
就可以非常好的來(lái)標(biāo)志Apache的Spark這個(gè)項(xiàng)目了础钠。一般來(lái)說(shuō)可以使用倒序的公司網(wǎng)址來(lái)作為GroupId恰力,這可以類比為,沿襲了Java項(xiàng)目中使用倒序公司網(wǎng)址來(lái)作為Package名稱的一個(gè)慣例旗吁。 - ArtifactId踩萎,一般是用來(lái)在整個(gè)項(xiàng)目組來(lái)標(biāo)志本項(xiàng)目的,相比
GroupId
的范圍很钓,其概念要稍微小一些香府,比如spark-core_2.11
就非常好的表示出了本項(xiàng)目主要是關(guān)于Spark的核心基礎(chǔ)組件的董栽,從而能夠與Spark其他各種組件或架構(gòu)很好的區(qū)分開(kāi)來(lái)。 - Version企孩,正如字面意思锭碳,就是本項(xiàng)目的迭代版本的信息,如上面的
1.6.2
.
現(xiàn)在柠硕,比如你的公司名稱叫做abc
工禾,然后你的項(xiàng)目組叫做test
运提,那就可以使用com.abc.test
來(lái)作為GroupId
蝗柔,然后將ArtifactId
取做myFirstProject
,版本號(hào)就使用它默認(rèn)的就好了(當(dāng)然民泵,如果你的項(xiàng)目以后有迭代更新版本的話癣丧,這個(gè)是需要按照實(shí)際情況進(jìn)行改動(dòng)的)。這三個(gè)字段設(shè)置完畢后栈妆,點(diǎn)擊Next
胁编,來(lái)到項(xiàng)目名稱設(shè)置頁(yè)面,一般可以和ArtifactId
字段保持一致鳞尔,當(dāng)然也可以不一致嬉橙,這個(gè)只是為了給本項(xiàng)目取個(gè)名字而已。
整個(gè)流程如下面的Gif動(dòng)圖所示寥假。
2.2 屬于你的"Hello World!"
在上一步中市框,我們已經(jīng)創(chuàng)建了一個(gè)Maven工程,不出意外的話糕韧,這個(gè)時(shí)候會(huì)打開(kāi)這個(gè)項(xiàng)目枫振,并且首先映入眼簾的將是項(xiàng)目的 pom.xml
文件(暫時(shí)不清楚的不要緊,后面會(huì)講到)萤彩,細(xì)心如你粪滤,一定可以驚奇的發(fā)現(xiàn) pom
文件中居然有我們剛才設(shè)置的 GroupId
, ArtifactId
和 Version
這些信息(如下),這些信息相當(dāng)于就給了本項(xiàng)目一個(gè)唯一的標(biāo)識(shí)符雀扶,有了這個(gè)標(biāo)識(shí)符杖小,別人將會(huì)在浩如煙海的Maven倉(cāng)庫(kù)中,一眼識(shí)別到你(本段話有裝B嫌疑愚墓,不懂的話請(qǐng)暫時(shí)忽略)予权。
<groupId>com.abc.test</groupId>
<artifactId>myFirstProject</artifactId>
<version>1.0-SNAPSHOT</version>
好,現(xiàn)在開(kāi)始要真正在這個(gè)Maven項(xiàng)目中創(chuàng)建一個(gè)屬于自己的Scala程序了转绷,在開(kāi)干之前伟件,為了給Scala營(yíng)造一個(gè)順利的環(huán)境,有幾件事需要先做议经。下面我將分點(diǎn)羅列如下:
- 首先斧账,為了讓你的首次體驗(yàn)Scala更清爽一些谴返,將一些暫時(shí)無(wú)關(guān)的文件和文件夾都勇敢的刪除掉吧,主要有
main\java
,main\resources
和test
這三個(gè)咧织; - 將Scala的框架添加到這個(gè)項(xiàng)目中嗓袱,方法是在左側(cè)欄中的項(xiàng)目名稱上右鍵菜單中點(diǎn)擊
Add Framework Support...
,然后在打開(kāi)的對(duì)話框左側(cè)邊欄中习绢,勾選Scala
前面的復(fù)選框渠抹,然后點(diǎn)擊確定即可(前提是上文中所述步驟都已正確走通,否則你很有可能看不到Scala這個(gè)選項(xiàng)的)闪萄; - 在main文件夾中建立一個(gè)名為
scala
的文件夾梧却,并右鍵點(diǎn)擊scala
文件夾,選擇Make Directory as
败去,然后選擇Sources Root
放航,這里主要意思是將scala
文件夾標(biāo)記為一個(gè)源文件的根目錄,然后在其內(nèi)的所有代碼中的package
圆裕,其路徑就從這個(gè)根目錄下開(kāi)始算起广鳍。舉個(gè)例子,假如你在scala
文件夾中建立了一個(gè)程序吓妆,這個(gè)程序的package
屬性為com.abc.test
赊时,那么這個(gè)程序就一定要保存在scala\com\abc\test
目錄下,否則項(xiàng)目就找不到這個(gè)程序了行拢; - 在已經(jīng)標(biāo)記好為源文件根目錄的
scala
文件夾 上祖秒,右鍵選擇New
,然后選擇Scala Class
剂陡,隨后設(shè)置好程序的名稱狈涮,并且記得將其設(shè)置為一個(gè)Object
(類似于Java中含有靜態(tài)成員的靜態(tài)類),正常的話鸭栖,將會(huì)打開(kāi)這個(gè)Object
代碼界面歌馍,并且可以看到IntelliJ IDEA自動(dòng)添加了一些最基本的信息; - 在創(chuàng)建的
Object
中輸入如下語(yǔ)句:
def main(args: Array[String]):Unit = {
println("Hello World!")
}
- 在程序界面的任意位置晕鹊,右鍵單擊后選擇
Run '你的程序名稱'
松却,靜待程序的編譯和運(yùn)行,然后在下方自動(dòng)打開(kāi)的窗口中溅话,你就可以看到振奮人心的Hello World!
了晓锻。
整個(gè)流程的Gif動(dòng)圖已經(jīng)做好,雙手奉上飞几。
三. 小結(jié)
至此砚哆,整個(gè)的IntelliJ IDEA安裝與配置,以及基本的Maven工程創(chuàng)建流程屑墨,就全然結(jié)束了躁锁,寫(xiě)的比較啰嗦纷铣,一個(gè)很簡(jiǎn)單的IDE使用問(wèn)題,嚼了這么多口舌战转,不過(guò)啰嗦之外搜立,若果真對(duì)各位好學(xué)的你們,有稍稍的竟然之外的益處槐秧,那也就不枉我這么苦逼的制作這些Gif動(dòng)圖了啄踊。
此外,本文只介紹了一些最基本的內(nèi)容刁标,關(guān)于IntelliJ IDEA和Maven的更為細(xì)致的內(nèi)容颠通,以及關(guān)于如何在本地寫(xiě)一個(gè)Spark程序都還沒(méi)有提到,不著急命雀,后續(xù)我會(huì)慢慢更新蒜哀。
Tips:
若上文中有些Gif圖看不太清,可以在這些圖上點(diǎn)擊右鍵吏砂,并選擇"在新標(biāo)簽頁(yè)中打開(kāi)圖片"(在Chrome中,是這個(gè)選項(xiàng)乘客,可能不同瀏覽器中的說(shuō)法不一樣狐血,不過(guò)相信一定難不到你),然后將這個(gè)圖片在新的瀏覽器窗口打開(kāi)后易核,就會(huì)變大一些匈织,從而看的也更清楚一些了。
參考
- https://github.com/judasn/IntelliJ-IDEA-Tutorial(非常好的IntelliJ IDEA教程)