idea導入項目參數釋義

平時大家都是使用idea直接打開項目,但對於一個新接手的項目來說首要的操作是import;這樣做的好處有:

  1. 當項目未上傳gradle文件時可以手動選擇本地對應版本編譯
  2. 方便進行首次的gradle sync操作
  3. 自動適配更新為當前電腦的配置環境

但是大家在導入項目時會有較多的選項,這些選項都有什麼用處呢;咱們來看看。

演示代碼來自課程:《Socket網路編程進階與實戰》

準備

  • idea:2018.3
  • 構建工具:gradle
  • 項目:Socket網路編程進階與實戰

目錄結構

整個目錄包含4個module文件夾:

  • lib-clink
  • sample-client
  • sample-foo
  • sample-server

而每個文件夾下的代碼都放在 src/main 中

當你什麼都不做,使用默認模式導入時你的項目是這樣的:

Project視圖下沒有毛病,當我們切換到packages下看見的是這樣的:

可以看見,每一個module都被賦予了 默認、main、test 所以你看見的module將變得更多,由於我們只有main下面具有代碼,所以此時只有 main module下才有代碼,其他module下無代碼。

基礎配置

  1. 自動導入,作用與字面意思一樣;當你的項目有依賴一些第三方庫時需要勾選,此時導入項目後會自動下載依賴的庫,並完成依賴過程
  2. 這個也簡單,簡單來說就是有些項目只有build配置,並沒有初始化代碼,而這個勾選的作用就是自動為你創建模版。
    1. 一般新建項目時可勾選自動創建模版文件
    2. 若僅僅需要創建項目,而代碼結構需要自己來則不用勾選
    3. 導入項目時一般無需勾選
  3. 這個地方就很玄幻了:使用顯式Module組、使用限定的名稱
    1. 顯式Module組:簡單來說你可以自己在項目中創建對應的羣組,然後將代碼劃分到不同的羣組中,這可以讓你的代碼更有結構。
    2. 限定的名稱:idea默認的選項。其概念與Java9 Jigsaw模塊化一樣。選擇該選項,項目的module組合方式idea將根據Java理解代碼的分組方式直觀的組織模塊;所以你看見的都是散列的一個個module。

顯式Module組

你可以在對應的文件夾上右鍵,調整不同的module到不同的組中,以便讓你的項目更加結構化;當然一般情況下,咱們不操作。

在該模式下,咱們Packages視圖將變成羣組的方式呈現:

默認的。在每個分組內部有默認、main、test分組存在。

上面打斷了一下,現在我們來看看這兩個:

create separate module per source set

為每個代碼源都創建獨立的module**;默認的一個項目下會有 main、test 所以採用該方式導入時會將我們所理解的一個module顯示為3個,其中包括了 main、test以及一個外部的總代碼文件夾。

當前選項可以與 Group modules 選項配合使用達到不一樣的效果。

選中的效果大家已經看見了,我們來看看不選中的效果。

Packages呈現的就是main代碼下的樣式,因為當前test本身沒有代碼存在,所以這是比較合理的組織方式。

在這種方式下,會多一個外部主的文件夾module,其他類似,但名稱有所不同,module名稱顯示的是主包名結構,這也就是idea採用java模塊化自動推斷的顯示方式。

Resolve external annotations

這個選項,想必大家都很少看見吧;這個選項的主要作用是在導入時自動解決外部註解的顯示與應用。這裡有個新東西:外部註解。

外部註解本身不是新事物,主要是大家很少使用而已,主要用以不同ide之間同步註解使用,相當於把源代碼中的註解提取出來在外部建立一個XML文件進行維護,代碼中使用對應的標記進行應用。

idea外部註解詳見:External annotations

默認的,咱們都不管他,一般沒有特殊需求不需要勾選。

Gradle導入設置

  1. 使用默認的gradle wrapper 這是idea推薦的方式,會自動使用項目中的build信息進行下載gradle對應版本(如果本地沒有的話)
  2. 第二個,則是會使用wrapper的節點配置下載指定的版本;具體的可以看看:stackoverflow 和 Configuring a Gradle version for a project
  3. 第三個,則使用本地版本,如果你知道項目使用的版本,並且項目本身沒有上傳gradle文件夾的時候,可以選擇該選項,選擇一個本地的版本是非常不錯的選擇。當你選擇後可以在下面的選項框中選擇你本地的gradle文件。默認的在 user/.gradle/wrapper/dists/ 你也可以自己去網站上下載。

全局Gradle配置

這個部分主要負責是否啟用離線工作模式,該模式一般在項目已經正常導入過,本地已有對應依賴庫緩存的時候使用,不然將無法編譯通過。

文本框主要是設置本地的倉庫地址,以及環境參數;這裡就不做展開了。

在離線模式下,編譯時將不會去嘗試搜索下載依賴項目,一定程度上可以加快整個構建流程,但是一般不建議使用該選項,除非你的本地已有緩存的依賴,同時你的電腦無法連接到遠端maven倉庫時才使用(運營商搞鬼,要翻牆)。

好的以上就是idea導入項目的詳解;我們需要注意的一般都是前5條選項。

囉嗦一句:演示代碼來自課程:《Socket網路編程進階與實戰》這是一門講解Socket原理與運用的課程,脫去demo層面的理解;能讓你快速勝任socket相關的工作。

作者:Qiujuer

鏈接:imooc.com/article/detai

來源:慕課網本文首次發佈於慕課網 ,轉載請註明出處,謝謝合作

推薦閱讀:

接手別人的代碼,死的心有嗎?

慕課網:IntelliJ IDEA 最常用配置,應用、永久激活

網上黑程序員的現實依據是什麼?程序員真的那麼悲慘嗎?

拋開 Vue、React、JQuery 這類第三方js,我們該怎麼寫代碼?

正在工作的程序員,生活狀態什麼樣?

程序員反感(討厭、不喜歡)什麼?

暴露真實IP真的沒關係嗎?

有哪些程序員特有的習慣?

月薪3萬的程序員都避開了哪些坑?

推薦閱讀:

相關文章