1. 程式人生 > >利用IntelliJ IDEA與Maven開始你的Scala之旅

利用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

。然後來到如下所示的UI主題選擇介面,大多數使用IntelliJ IDEA的開發人員,一般都會毫無例外的選用第二個UI,這種灰黑色的主題簡潔大方,給人一種深邃的質感,也確實是很多人選擇IntelliJ IDEA的一個重要原因之一,用很多人的話說,寫程式碼都能寫出“高潮”來,是否屬實,你們試試就知道了。

1.2 Scala外掛的安裝

後續的幾個頁面按照預設的配置即可,一直Next來到下面的介面。因為我們主要用Scala來寫Spark程式,而IntelliJ IDEA需要使用Scala外掛來支援Scala,安裝方法如下圖所示,首先點選Configure,然後點選下拉選單中的Plugins

隨後開啟的頁面會顯示出IntelliJ IDEA當前已安裝的外掛列表,現在我們要安裝Scala外掛,所以點選頁面左下方的Install JetBrains plugin...按鈕,然後來到安裝外掛的頁面,如果網路正常的話,在頁面左上方的搜尋框內搜尋”scala”,即可出現Scala外掛的安裝介面,點選右側頁面中的Install進行安裝後,可以看到安裝的進度條,如下圖所示:

但是如果你在公司內網,這個時候你可能需要配置代理,步驟如下圖所示,在圖中的Host namePort 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, ArtifactIdVersion.

為了更好的解釋這三個欄位,用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, ArtifactIdVersion 這些資訊(如下),這些資訊相當於就給了本專案一個唯一的識別符號,有了這個識別符號,別人將會在浩如煙海的Maven倉庫中,一眼識別到你(本段話有裝B嫌疑,不懂的話請暫時忽略)。

    <groupId>com.abc.test</groupId>
    <artifactId>myFirstProject</artifactId>
    <version>1.0-SNAPSHOT</version>

好,現在開始要真正在這個Maven專案中建立一個屬於自己的Scala程式了,在開幹之前,為了給Scala營造一個順利的環境,有幾件事需要先做。下面我將分點羅列如下:

  • 首先,為了讓你的首次體驗Scala更清爽一些,將一些暫時無關的檔案和資料夾都勇敢的刪除掉吧,主要有 main\java, main\resourcestest 這三個;
  • 將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中,是這個選項,可能不同瀏覽器中的說法不一樣,不過相信一定難不到你),然後將這個圖片在新的瀏覽器視窗開啟後,就會變大一些,從而看的也更清楚一些了。

參考