利用IntelliJ IDEA與Maven開始你的Scala之旅
一. IntelliJ IDEA安裝及配置
1.1 IntelliJ IDEA下載及安裝
首先在 CHOOSE YOUR EDITION 這裡選擇Community
版本,這個版本是免費提供的,對我們的Spark使用來說,用這個版本已經足夠了。如下圖所示:
直接點選黑色的 DOWNLOAD
按鈕會預設開始下載Windows版本的IntelliJ IDEA
,如果需要其他平臺的版本,可以點選旁邊的 .EXE
,然後在開啟的下拉選單中,選擇相應平臺即可。
下載完成後,雙擊得到的.exe
檔案(我這裡主要以Windows平臺為例,下載得到的檔案為ideaIC-2016.2.1.exe
Next
,最後點選Finish
按鈕結束安裝過程。
預設情況下,IntelliJ IDEA
並不會在桌面上建立快捷鍵,我們可以去它的安裝目錄下的bin
資料夾中,找到它的可執行.exe
檔案,我這裡的bin
資料夾路徑是C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 2016.2.1\bin
,在該目錄下,你可以找到兩個如下的檔案:
idea.exe//對應32位機器
idea64.exe//對應64位機器
根據自己電腦是32位還是64位的,進行相應版本的選擇,如果怕麻煩,建議在該檔案上點選右鍵,然後選擇傳送到
–> 桌面快捷方式
選項,這樣以後在啟動的時候,直接在桌面上雙擊快捷方式即可(如果是細心的讀者,其實可以發現,在IDEA安裝過程中,其中有一個步驟就是問:需不需要在桌面上建立快捷方式,預設下是不會建立的)。
選擇好32位還是64位的檔案後,然後雙擊執行IntelliJ IDEA,一般來說首次執行,都會碰到如下頁面:
因為IntelliJ IDEA本身都會有一些配置檔案,所以這裡在詢問是否需要匯入一個配置檔案,這裡選擇圖中標示的選項即可,並點選OK
1.2 Scala外掛的安裝
後續的幾個頁面按照預設的配置即可,一直Next
來到下面的介面。因為我們主要用Scala來寫Spark程式,而IntelliJ IDEA需要使用Scala外掛來支援Scala,安裝方法如下圖所示,首先點選Configure
,然後點選下拉選單中的Plugins
。
隨後開啟的頁面會顯示出IntelliJ IDEA當前已安裝的外掛列表,現在我們要安裝Scala外掛,所以點選頁面左下方的Install JetBrains plugin...
按鈕,然後來到安裝外掛的頁面,如果網路正常的話,在頁面左上方的搜尋框內搜尋”scala”,即可出現Scala外掛的安裝介面,點選右側頁面中的Install
進行安裝後,可以看到安裝的進度條,如下圖所示:
但是如果你在公司內網,這個時候你可能需要配置代理,步驟如下圖所示,在圖中的Host name
和Port number
中填寫公司自己的代理即可,如果需要,在下方的賬號和密碼框中按情況填寫上相應資訊。填寫完畢,記得先檢查一下是否能夠正確連上外部網路,可以點選圖中的Check connection
,輸入一個外網的地址,比如http://www.baidu.com/
,測試一下代理是否正確配置了。一切正常後,點選OK
退出即可。然後按照上一步中不需要配置代理的情況下,進行Scala外掛的安裝。
注意:外掛安裝完了之後,記得重啟一下IntelliJ IDEA使得外掛能夠生效。
1.3 全域性JDK和Library的設定
因為Scala程式碼的編寫需要依賴JDK,並且以後編寫Spark的程式,肯定會用到各種外部Jar包,如果自己手動去下載這些Jar包然後再引入專案,不僅費時費力,而且尤其在多人協作開發一個專案的時候,各種Jar包版本的管理將會變得非常混亂,因此,在這裡建議:從一開始就習慣來用Maven對專案依賴到的Jar包進行理(後面會講到Maven),然而在建立Maven工程的時候,首先便需要指定JDK。
因此為了後續建立Spark專案(正如上面所說,一方面是Scala本身需要依賴JDK,另一方面用來管理專案構建的Maven,其建立也需要依賴JDK)的時候不用每次都去配置JDK,這裡先進行一次全域性配置。首先在歡迎介面點選Configure
,然後在Project Defaults
的下拉選單中選擇Project Structure
,如下圖所示:
然後在開啟的Default Project Structure
介面的左側邊欄選擇Project
,在右側開啟的頁面中建立一個新的JDK選項(一定要本機已經安裝過JDK了),如下圖所示步驟在下拉選單中點選JDK
後,在開啟的對話方塊中選擇你所安裝JDK的位置,注意是JDK安裝的根目錄,不是bin資料夾的目錄,如果你對上一篇文章中講到的JAVA_HOME
還很有印象的話,這裡的目錄就是JAVA_HOME
中設定的目錄。
這一步的全域性Project JDK
設定完畢後,回到歡迎頁面。
除了要依賴JDK之外,Scala的編寫肯定也離開不了自身的SDK(全稱為Software Development Kit,即軟體開發工具包。實際上,JDK就是Java的SDK),我們在IntelliJ IDEA編寫Scala的程式的時候,比如要用到Scala自身提供的某個類,比如Seq
(暫時不知道不要緊,後續文章會講到),那IntelliJ IDEA到哪裡去找這個Seq
呢?只能去Scala自身提供的SDK裡面去找,因此各種程式語言的軟體開發者,是離不開這些語言的SDK的,Scala也自然不例外。而為了避免每次建立一個Scala工程的時候,都要去設定一遍Scala的SDK,這裡做一些全域性配置,主要是將Scala SDK引入到專案的Library中,並將其當做預設配置。
首先,在歡迎頁面的右下角點選Configure
,然後在Project Defaults
的下拉選單中選擇Project Structure
,在開啟的頁面左側選擇Global Libraries
,然後在中間一欄中有一個綠色的加號標誌 +
,點選後在下拉選單中選擇 Scala SDK
(如果沒有的話,回顧上面的步驟,仔細觀察一下是不是有哪些步驟錯了,比如Scala的外掛沒安裝成功,本機還未安裝Scala,亦或者Scala的bin資料夾路徑未能新增到系統的 PATH 環境變數中去等等),然後在開啟的對話方塊中選擇系統本身所安裝的Scala(即System對應的版本),點選OK
確定,這時候會在中間一欄位置處出現Scala的SDK,在其上右鍵點選後選擇Copy to Project Libraries...
,這個操作是為了將Scala SDK新增到專案的預設Library中去。整個流程如下面的動圖所示。
二. 建立一個Maven工程
2.1 建立Maven工程
上面的安裝和配置都完成後,現在可以開始建立一個Maven工程了。
在歡迎介面點選Create New Project
,在開啟的頁面左側邊欄中,選擇Maven
,然後在右側的Project SDK
一項中,檢視是否是正確的JDK配置項(如果每一步嚴格按照上文中的步驟操作的話,正常來說這一欄會自動填充的,因為我們之前在1.3中已經配置過了全域性的Project JDK了,如果這裡沒有正常顯示JDK的話,可以點選右側的New...
按鈕,然後指定JDK安裝路徑的根目錄即可),然後點選Next
,來到Maven專案最重要三個引數的設定頁面,這三個引數分別為:GroupId
, ArtifactId
和Version
.
為了更好的解釋這三個欄位,用Spark 1.6.2的核心元件的Maven識別符號為例來進行講解。
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.6.2</version>
- GroupId,可以理解為用來標誌你整個專案組的,或者你這些程式碼屬於某一個完整的專案,比如上面的
org.apache.spark
就可以非常好的來標誌Apache的Spark這個專案了。一般來說可以使用倒序的公司網址來作為GroupId,這可以類比為,沿襲了Java專案中使用倒序公司網址來作為Package名稱的一個慣例。 - ArtifactId,一般是用來在整個專案組來標誌本專案的,相比
GroupId
的範圍,其概念要稍微小一些,比如spark-core_2.11
就非常好的表示出了本專案主要是關於Spark的核心基礎元件的,從而能夠與Spark其他各種元件或架構很好的區分開來。 - Version,正如字面意思,就是本專案的迭代版本的資訊,如上面的
1.6.2
.
現在,比如你的公司名稱叫做abc
,然後你的專案組叫做test
,那就可以使用com.abc.test
來作為GroupId
,然後將ArtifactId
取做myFirstProject
,版本號就使用它預設的就好了(當然,如果你的專案以後有迭代更新版本的話,這個是需要按照實際情況進行改動的)。這三個欄位設定完畢後,點選Next
,來到專案名稱設定頁面,一般可以和ArtifactId
欄位保持一致,當然也可以不一致,這個只是為了給本專案取個名字而已。
整個流程如下面的Gif動圖所示。
2.2 屬於你的”Hello World!”
在上一步中,我們已經建立了一個Maven工程,不出意外的話,這個時候會開啟這個專案,並且首先映入眼簾的將是專案的 pom.xml
檔案(暫時不清楚的不要緊,後面會講到),細心如你,一定可以驚奇的發現 pom
檔案中居然有我們剛才設定的 GroupId
, ArtifactId
和 Version
這些資訊(如下),這些資訊相當於就給了本專案一個唯一的識別符號,有了這個識別符號,別人將會在浩如煙海的Maven倉庫中,一眼識別到你(本段話有裝B嫌疑,不懂的話請暫時忽略)。
<groupId>com.abc.test</groupId>
<artifactId>myFirstProject</artifactId>
<version>1.0-SNAPSHOT</version>
好,現在開始要真正在這個Maven專案中建立一個屬於自己的Scala程式了,在開幹之前,為了給Scala營造一個順利的環境,有幾件事需要先做。下面我將分點羅列如下:
- 首先,為了讓你的首次體驗Scala更清爽一些,將一些暫時無關的檔案和資料夾都勇敢的刪除掉吧,主要有
main\java
,main\resources
和test
這三個; - 將Scala的框架新增到這個專案中,方法是在左側欄中的專案名稱上右鍵選單中點選
Add Framework Support...
,然後在開啟的對話方塊左側邊欄中,勾選Scala
前面的複選框,然後點選確定即可(前提是上文中所述步驟都已正確走通,否則你很有可能看不到Scala這個選項的); - 在main資料夾中建立一個名為
scala
的資料夾,並右鍵點選scala
資料夾,選擇Make Directory as
,然後選擇Sources Root
,這裡主要意思是將scala
資料夾標記為一個原始檔的根目錄,然後在其內的所有程式碼中的package
,其路徑就從這個根目錄下開始算起。舉個例子,假如你在scala
資料夾中建立了一個程式,這個程式的package
屬性為com.abc.test
,那麼這個程式就一定要儲存在scala\com\abc\test
目錄下,否則專案就找不到這個程式了; - 在已經標記好為原始檔根目錄的
scala
資料夾 上,右鍵選擇New
,然後選擇Scala Class
,隨後設定好程式的名稱,並且記得將其設定為一個Object
(類似於Java中含有靜態成員的靜態類),正常的話,將會開啟這個Object
程式碼介面,並且可以看到IntelliJ IDEA自動添加了一些最基本的資訊; - 在建立的
Object
中輸入如下語句:
def main(args: Array[String]):Unit = {
println("Hello World!")
}
- 在程式介面的任意位置,右鍵單擊後選擇
Run '你的程式名稱'
,靜待程式的編譯和執行,然後在下方自動開啟的視窗中,你就可以看到振奮人心的Hello World!
了。
整個流程的Gif動圖已經做好,雙手奉上。
三. 小結
至此,整個的IntelliJ IDEA安裝與配置,以及基本的Maven工程建立流程,就全然結束了,寫的比較囉嗦,一個很簡單的IDE使用問題,嚼了這麼多口舌,不過囉嗦之外,若果真對各位好學的你們,有稍稍的竟然之外的益處,那也就不枉我這麼苦逼的製作這些Gif動圖了。
此外,本文只介紹了一些最基本的內容,關於IntelliJ IDEA和Maven的更為細緻的內容,以及關於如何在本地寫一個Spark程式都還沒有提到,不著急,後續我會慢慢更新。
Tips:
若上文中有些Gif圖看不太清,可以在這些圖上點選右鍵,並選擇”在新標籤頁中開啟圖片”(在Chrome中,是這個選項,可能不同瀏覽器中的說法不一樣,不過相信一定難不到你),然後將這個圖片在新的瀏覽器視窗開啟後,就會變大一些,從而看的也更清楚一些了。