(乾貨)【intellij idea】Project Structure 講解

孫文旭發表於2019-04-23

目錄結構介紹

在這裡插入圖片描述

Project

在這裡插入圖片描述
Project language level:選擇要支援的Java語言級別。選定的級別將被用作專案預設值。

可用選項對應於JDK版本:

  • 1.3 - 普通的舊Java
  • 1.4 - “斷言”關鍵字
  • 5.0 - 'enum’關鍵字,自動裝箱等
  • 6.0 - @Override在介面
  • 7.0 - 鑽石,ARM,多捕獲等
  • 8.0 - Lambda支援,型別註釋等

Modules

在這裡插入圖片描述

  • Name:專案名稱
  • Souces:這裡對Module的開發目錄進行資料夾分類,就是說這個module裡有什麼內容,說明了不同性質的內容放在哪裡。
    注意,這些不同內容的標記代表了一個標準Java工程的各項內容,IntelliJ就是根據這些標記來識別一個Java工程的各項內容的,比如,它會用javac去編譯標記為Sources的原始碼,打包的時候會把標記為Resources的資源拷貝到jar包中,並且忽略標記為Exluded的內容。左邊顯示的是在選中內容的預覽。
  • Paths:為模組配置編譯器輸出路徑,還可以指定與模組關聯的外部JavaDocs和外部註釋的位置。
  • Dependencies:在此選項卡上,您可以定義模組SDK並形成模組依賴關係列表。

Source

對module的開發目錄進行資料夾分類,以讓idea明白怎麼去對待他們,明確哪些是存放原始碼的資料夾,哪些是存放靜態檔案的資料夾,哪些是存放測試程式碼的資料夾,哪些是被排除編譯的資料夾。
在這裡插入圖片描述
Language level:語言級別列表,使用此列表為模組選擇Java語言級別。可用選項對應於JDK版本。
在這裡插入圖片描述

  • Sources:原始碼存放的檔案,藍色。
  • Tests:設定測試程式碼存放的檔案件,綠色。
  • Resources:一般對應著Sources檔案,一般放配置檔案,如:log4j.properties,application.yml。
  • Test Resources:這個對應著Tests資料夾,存放著Tests程式碼的配置檔案。
  • Excluded:設定配出編譯檢查的檔案,例如我們在project模組設定的out資料夾。

Paths

在這裡插入圖片描述

  • Compiler output:編譯輸出路徑。
  1. Inherit project compile output path:繼承專案編譯輸出路徑 選擇此選項以使用為專案指定的路徑。即上面在Project選項中設定的out檔案路徑。
  2. Use module compile output path:使用模組編譯輸出路徑。
    Output path:編譯輸出路徑。
    Test output path:測試程式碼編譯輸出路徑。
    Exclude output paths: 排除輸出路徑,選中此核取方塊可以排除輸出目錄。
  • JavaDoc:使用可用控制元件組合與模組關聯的外部JavaDocs儲存位置的列表。
  • External Annotations:外部註釋。使用新 和刪除 管理與模組關聯的外部註釋的位置(目錄)列表。

Dependencies

在此選項卡上,您可以定義模組SDK並形成模組依賴關係列表。
在這裡插入圖片描述

  • Module SDK:模組SDK,選擇模組SDK。
    (要將專案SDK與模組相關聯,請選擇Project SDK。請注意,如果稍後更改了專案SDK,模組SDK將相應更改。
    如果所需SDK不在列表中,請單擊“ 新建”,然後選擇所需的SDK型別。然後,在開啟的對話方塊中,選擇SDK主目錄,然後單擊確定。
    要檢視或編輯所選SDK的名稱和內容,請單擊編輯。(SDK頁面將開啟。)

  • 依賴列表(勾選表示依賴會傳遞,即引用該modules的modules也會擁有此依賴)

  • 相關性儲存格式,選擇用於儲存依賴關係的格式(作為IntelliJ IDEA模組或Eclipse專案)。該選項對使用不同開發工具的團隊有幫助。

Libraries

在此選項卡上,您可以定義模組SDK並形成模組依賴關係列表。
在這裡插入圖片描述

Facets

表示這個 module 有什麼特徵,比如 Web,Spring 和 Hibernate 等;
在這裡插入圖片描述

Artifacts

Artifact 是 maven 中的一個概念,表示某個 module 要如何打包,例如 war exploded、war、jar、ear 等等這種打包形式;
一個 module 有了 Artifacts 就可以部署到應用伺服器中了!
在給專案配置 Artifacts 的時候有好多個 type 的選項,exploed 是什麼意思?
explode 在這裡你可以理解為展開,不壓縮的意思。也就是 war、jar 等產出物沒壓縮前的目錄結構。建議在開發的時候使用這種模式,便於修改了檔案的效果立刻顯現出來。預設情況下,IDEA 的 Modules 和 Artifacts 的 output 目錄 已經設定好了,不需要更改,
打成 war 包 的時候會自動在 WEB-INF 目錄 下生產 classes 目錄 ,然後把編譯後的檔案放進去。
在這裡插入圖片描述

SDKS

系統開發工具 ,全域性 SDK 配置 。
在這裡插入圖片描述

Global libraries

全域性類庫,可以配置一些常用的類庫。
在這裡插入圖片描述

Problems

問題,在專案異常的時候很有用,可以根據提示進行專案修復(FIXED)。
在這裡插入圖片描述

idea的部署方式

  • 1.編譯,IDEA在儲存/自動儲存後不會做編譯,不像Eclipse的儲存即編譯,因此在執行server前會做一次編譯。編譯後class檔案存放在指定的module編譯輸出目錄下。
  • 2.根據artifact中的設定對目錄結構進行建立;
  • 3.拷貝web資源的根目錄下的所有檔案到artifact的目錄下;
  • 4.拷貝編譯輸出目錄下的classes目錄到artifact下的WEB-INF下;
  • 5.拷貝lib目錄下所需的jar包到artifact下的WEB_INF下;
  • 6.執行server,執行成功後,如有需要,會自動開啟瀏覽器訪問指定url。

轉載Project Structure詳解
結合Project Structure理解idea部署web專案

相關文章