Facets:html
Facets表述了在Module中使用的各類各樣的框架、技術和語言。這些Facets讓Intellij IDEA知道怎麼對待module內容,並保證與相應的框架和語言保持一致。java
使用Facets能讓咱們下載並配置framework所必須的組件,會自動生成各類各樣的描述符,並存儲在適當的位置,等等。web
大多數Facets能夠無衝突得添加到Module中。spring
也有一些Facets是繼承其餘Facets的,這些Facets的添加就必須先添加他們的父Facets,這些Facets也要依賴Intellij IDEA的相關插件是否開啓.app
目前可用Facets列表(包含存在依賴關係的Facets)框架
舉例1:Web Facetside
配置Web、EJB、Java EE Application的Facets大體類似,因此咱們放在一塊兒介紹一下,不同的地方會有標記:ui
下面說下Web、EJB、Java EE Application Facet:idea
下面分別介紹每一項配置:spa
Name:輸入該Web Facet的名稱,上圖用的是Web做爲名稱,也是默認的名稱。
Deployment Descriptors:在這部分,管理應用的部署描述符。
---- Type:只讀字段,展現部署描述符類型。各自依賴的facet類型有:Web Module Deployment Descriptor、EJB Module Deployment Descriptor、 Application Module Deployment Descriptor
---- Path:只讀字段,展現部署描述符的位置。各自部署描述符有:web.xml
,ejb.xml
, or application.xml
---- (Alt+Insert) :用這個圖標或者快捷鍵,來添加一個新的部署描述符,在打開的Deployment Descriptor Location對話框選擇部署描述符的位置和用到的指定版本(版本不可選就不用管它)。
---- (Enter) :使用這個圖標或快捷鍵,來從新指定部署描述符的位置。
---- (Alt+Delete) :使用這個圖標或快捷鍵,從列表中刪除選定的描述符。若是但願同時刪除磁盤上的描述符,能夠在打開的Delete Deployment Descriptor對話框中勾選Also delete from disk選項。
---- Add Application Server specific descriptor :點擊這個按鈕添加一個支持application servers的部署描述符,常見的application servers:Geronimo, GlassFish, Tomcat, JBoss, or WebLogic,在彈出的對話框中選擇一個application server及其版本。
Web Resource Directories:在這部分,咱們將第三方或未分類資源路徑映射到部署根目錄。
---- Web Resource Directory :只讀字段,展現所需的Web Resource位置的本地目錄。Web Resource目錄包含Web開發所需的文件:JSP、HTML、XML等。Web Resource目錄下的內容會被拷貝到由Relative Path所指定的Web模塊部署目錄。
---- Pah Relative to Deployment Root:只讀字段,展現Web Resource相對於Web部署的根目錄的相對路徑。
---- (Alt+Insert) :使用這個圖標或快捷鍵,打開一個配置Web Resource Directories映射的對話框(Web Resource Directory Path)。
---- 修改和刪除按鈕就不贅述了。
在這裏須要說的是 Web Resource Directory Path 對話框:
---- dialog ----Web Resource Directory Path :指定所需的Web Resource所在的本地目錄。
---- dialog ---- Relative path in deployment directory :指定部署Web Resource的相對目錄,相對於部署根目錄。若是輸入斜槓'/',那麼Web Resource目錄裏的文件將被拷貝到部署目錄的根目錄。
Source Roots :這部分展現當前module所遇到的source root列表。
要了解source roots就得從Content Root提及:
Content Root:
Content Root是包含組成Module的全部文件的文件夾。
一個Module能夠包含多個Content Root,但但多數狀況一個Content Root就夠了。在特殊狀況下,沒有Content Root的module也頗有用。
在Intellij IDEA中Content Root展現樣式是: or
.
分類:一個Content Root裏的文件夾分爲如下幾類:
一、Source Roots(或Source Folders,展現樣式: ):
標爲此類的文件夾,告訴Intellij IDEA,此文件夾及其子文件夾應做爲構建過程的一部分進行編譯。
在Java的Module中,Source Roots的子文件夾表明着Java的包結構。
二、Resource Roots(或Resource Folders,展現樣式: ,只有Java Module纔可用):
在咱們的應用中,是給resource文件用的。如,圖片文件、各類各樣的xml配置文件和properties屬性文件等。
在構建過程當中,全部resource Roots下的內容將原封不動得拷貝到Output文件夾。
三、Excluded Roots(展現樣式:):
Intellij IDEA對該文件夾基本忽略,對該文件夾下的文件提供很是有限的代碼輔助。即使是搜索,Intellij IDEA也不會查找這個文件夾下的內容。
把一些不怎麼重要的文件夾標記爲Excluded Roots,能夠提升Intellij IDEA的用戶體驗。
若是一個Module只是做爲一個單獨的依賴庫,顯然是不須要Content Root的。
舉例2:spring Facets
在Facets中添加Spring,會彈出Choose Module對話框,並提示spring facets will be added to selected module。
在Spring Facets中點擊將彈出New Application Context對話框。對話框中Name指定context名稱,parent context指定父context。
但事實上Intellij IDEA會自動探測,並不須要咱們手動配置。
Artifacts:
artifact是一個項目資源的組合體。例如,一個已編譯的java類的集合,一個已打包的java應用。
artifact能夠是一個archive文件,也能夠是一個包含如下結構元素的目錄結構:
-- (一個或多個)module的編譯Output;
-- 包含在module的依賴中的Libraries;
-- 資源的集合,如web頁面,圖片,decriptor文件;
-- 其餘artifacts;
-- 個別文件、目錄和archives;
經過artifact配置實現運做:
Artifacts會根據artifacts配置自動生成。配置方式:Project Structure dialog (
常規設置:
Name :artifact配置的名稱,又或是artifact的名稱。
Type :artifact的類型
Output directory :當執行build(
Build on make :當build project(
因而可知,
①當咱們項目中的Type 和 Output directory是:
此時,咱們的Artifacts是這個樣子:(已編譯的資源和已打包的應用)
②當咱們的Type 和 Output directory是:
此時咱們的Artifacts是這樣:(一個目錄結構)
Artifacts的默認配置會是這樣:
另外關於Artifacts每一個TAB的配置看:Artifacts--Intellij IDEA
總結,不管配置Facets、Artifacts仍是標記Content Root,都是Intellij IDEA要求咱們這樣作的,以便其能識別這些文件並整合各插件實現功能。