詳解Intellij IDEA的Facets和Artifacts
Facets:
Facets表述了在Module中使用的各種各樣的框架、技術(shù)和語(yǔ)言。這些Facets讓Intellij IDEA知道怎么對(duì)待module內(nèi)容,并保證與相應(yīng)的框架和語(yǔ)言保持一致。
使用Facets能讓我們下載并配置framework所必須的組件,會(huì)自動(dòng)生成各種各樣的描述符,并存儲(chǔ)在適當(dāng)?shù)奈恢?,等等?/p>
大多數(shù)Facets可以無(wú)沖突得添加到Module中。
也有一些Facets是繼承其他Facets的,這些Facets的添加就必須先添加他們的父Facets,這些Facets也要依賴Intellij IDEA的相關(guān)插件是否開(kāi)啟.
目前可用Facets列表(包含存在依賴關(guān)系的Facets)
舉例1:Web Facets
配置Web、EJB、Java EE Application的Facets大致相似,所以我們放在一起介紹一下,不一樣的地方會(huì)有標(biāo)記:
下面說(shuō)下Web、EJB、Java EE Application Facet:

下面分別介紹每一項(xiàng)配置:
Name:輸入該Web Facet的名稱,上圖用的是Web作為名稱,也是默認(rèn)的名稱。
Deployment Descriptors:在這部分,管理應(yīng)用的部署描述符。
---- Type:只讀字段,展示部署描述符類型。各自依賴的facet類型有:Web Module Deployment Descriptor、EJB Module Deployment Descriptor、 Application Module Deployment Descriptor
---- Path:只讀字段,展示部署描述符的位置。各自部署描述符有:web.xml,ejb.xml, or application.xml
---- (Alt+Insert) :用這個(gè)圖標(biāo)或者快捷鍵,來(lái)添加一個(gè)新的部署描述符,在打開(kāi)的Deployment Descriptor Location對(duì)話框選擇部署描述符的位置和用到的指定版本(版本不可選就不用管它)。
---- (Enter) :使用這個(gè)圖標(biāo)或快捷鍵,來(lái)重新指定部署描述符的位置。
---- (Alt+Delete) :使用這個(gè)圖標(biāo)或快捷鍵,從列表中刪除選定的描述符。如果希望同時(shí)刪除磁盤上的描述符,可以在打開(kāi)的Delete Deployment Descriptor對(duì)話框中勾選Also delete from disk選項(xiàng)。
---- Add Application Server specific descriptor :點(diǎn)擊這個(gè)按鈕添加一個(gè)支持application servers的部署描述符,常見(jiàn)的application servers:Geronimo, GlassFish, Tomcat, JBoss, or WebLogic,在彈出的對(duì)話框中選擇一個(gè)application server及其版本。
Web Resource Directories:在這部分,我們將第三方或未分類資源路徑映射到部署根目錄。
---- Web Resource Directory :只讀字段,展示所需的Web Resource位置的本地目錄。Web Resource目錄包含Web開(kāi)發(fā)所需的文件:JSP、HTML、XML等。Web Resource目錄下的內(nèi)容會(huì)被拷貝到由Relative Path所指定的Web模塊部署目錄。
---- Pah Relative to Deployment Root:只讀字段,展示W(wǎng)eb Resource相對(duì)于Web部署的根目錄的相對(duì)路徑。
---- (Alt+Insert) :使用這個(gè)圖標(biāo)或快捷鍵,打開(kāi)一個(gè)配置Web Resource Directories映射的對(duì)話框(Web Resource Directory Path)。
---- 修改和刪除按鈕就不贅述了。
在這里需要說(shuō)的是 Web Resource Directory Path 對(duì)話框:
---- dialog ----Web Resource Directory Path :指定所需的Web Resource所在的本地目錄。
---- dialog ---- Relative path in deployment directory :指定部署Web Resource的相對(duì)目錄,相對(duì)于部署根目錄。如果輸入斜杠'/',那么Web Resource目錄里的文件將被拷貝到部署目錄的根目錄。
Source Roots :這部分展示當(dāng)前module所遇到的source root列表。
要了解source roots就得從Content Root說(shuō)起:
Content Root:
Content Root是包含組成Module的所有文件的文件夾。
一個(gè)Module可以包含多個(gè)Content Root,但但多數(shù)情況一個(gè)Content Root就夠了。在特殊情況下,沒(méi)有Content Root的module也很有用。.
分類:一個(gè)Content Root里的文件夾分為以下幾類:
1、Source Roots(或Source Folders,展示樣式: ):
標(biāo)為此類的文件夾,告訴Intellij IDEA,此文件夾及其子文件夾應(yīng)作為構(gòu)建過(guò)程的一部分進(jìn)行編譯。
在Java的Module中,Source Roots的子文件夾代表著Java的包結(jié)構(gòu)。
2、Resource Roots(或Resource Folders,展示樣式: ,只有Java Module才可用):
在我們的應(yīng)用中,是給resource文件用的。如,圖片文件、各種各樣的xml配置文件和properties屬性文件等。
在構(gòu)建過(guò)程中,所有resource Roots下的內(nèi)容將原封不動(dòng)得拷貝到Output文件夾。
3、Excluded Roots(展示樣式:):
Intellij IDEA對(duì)該文件夾基本忽略,對(duì)該文件夾下的文件提供非常有限的代碼輔助。即便是搜索,Intellij IDEA也不會(huì)查找這個(gè)文件夾下的內(nèi)容。
把一些不怎么重要的文件夾標(biāo)記為Excluded Roots,可以提高Intellij IDEA的用戶體驗(yàn)。
如果一個(gè)Module只是作為一個(gè)單獨(dú)的依賴庫(kù),顯然是不需要Content Root的。
舉例2:Spring Facets
在Facets中添加Spring,會(huì)彈出Choose Module對(duì)話框,并提示spring facets will be added to selected module。
在Spring Facets中點(diǎn)擊將彈出New Application Context對(duì)話框。對(duì)話框中Name指定context名稱,parent context指定父context。
但事實(shí)上Intellij IDEA會(huì)自動(dòng)探測(cè),并不需要我們手動(dòng)配置。
Artifacts:
artifact是一個(gè)項(xiàng)目資源的組合體。例如,一個(gè)已編譯的java類的集合,一個(gè)已打包的java應(yīng)用。
artifact可以是一個(gè)archive文件,也可以是一個(gè)包含以下結(jié)構(gòu)元素的目錄結(jié)構(gòu):
-- (一個(gè)或多個(gè))module的編譯Output;
-- 包含在module的依賴中的Libraries;
-- 資源的集合,如web頁(yè)面,圖片,decriptor文件;
-- 其他artifacts;
-- 個(gè)別文件、目錄和archives;
通過(guò)artifact配置實(shí)現(xiàn)運(yùn)作:
Artifacts會(huì)根據(jù)artifacts配置自動(dòng)生成。配置方式:Project Structure dialog (File | Project Structure | Artifacts)
常規(guī)設(shè)置:
Name :artifact配置的名稱,又或是artifact的名稱。
Type :artifact的類型
Output directory :當(dāng)執(zhí)行build(Build | Build Artifacts)時(shí),artifacts將被放到這個(gè)指定的目錄下。
Build on make :當(dāng)build project(Build | Make Project)時(shí),會(huì)自動(dòng)build artifacts。
由此可見(jiàn),
①當(dāng)我們項(xiàng)目中的Type 和 Output directory是:

此時(shí),我們的Artifacts是這個(gè)樣子:(已編譯的資源和已打包的應(yīng)用)

②當(dāng)我們的Type 和 Output directory是:

此時(shí)我們的Artifacts是這樣:(一個(gè)目錄結(jié)構(gòu))

Artifacts的默認(rèn)配置會(huì)是這樣:


另外關(guān)于Artifacts每個(gè)TAB的配置看:Artifacts--Intellij IDEA
總結(jié),無(wú)論配置Facets、Artifacts還是標(biāo)記Content Root,都是Intellij IDEA要求我們這樣做的,以便其能識(shí)別這些文件并整合各插件實(shí)現(xiàn)功能。
到此這篇關(guān)于詳解Intellij IDEA的Facets和Artifacts的文章就介紹到這了,更多相關(guān)IDEA的Facets和Artifacts內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java對(duì)象級(jí)別與類級(jí)別的同步鎖synchronized語(yǔ)法示例
這篇文章主要為大家介紹了Java對(duì)象級(jí)別與類級(jí)別的同步鎖synchronized語(yǔ)法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
Springboot實(shí)現(xiàn)阿里云通信短信服務(wù)有關(guān)短信驗(yàn)證碼的發(fā)送功能
短信驗(yàn)證碼是通過(guò)發(fā)送驗(yàn)證碼到手機(jī)的一種有效的驗(yàn)證碼系統(tǒng)。主要用于驗(yàn)證用戶手機(jī)的合法性及敏感操作的身份驗(yàn)證。下面通過(guò)本文大家分享Springboot實(shí)現(xiàn)阿里云通信短信服務(wù)有關(guān)短信驗(yàn)證碼的發(fā)送功能,一起看看吧2017-08-08
Java使用備忘錄模式實(shí)現(xiàn)過(guò)關(guān)類游戲功能詳解
這篇文章主要介紹了Java使用備忘錄模式實(shí)現(xiàn)過(guò)關(guān)類游戲功能,結(jié)合實(shí)例形式詳細(xì)分析了java備忘錄模式的概念、原理及其在過(guò)關(guān)類游戲中的具體應(yīng)用方法,需要的朋友可以參考下2018-04-04
SpringBoot通過(guò)自定義注解實(shí)現(xiàn)參數(shù)校驗(yàn)
實(shí)現(xiàn)參數(shù)校驗(yàn)說(shuō)實(shí)話方式還挺多,個(gè)人使用過(guò)直接在Controller代碼里面寫、AOP+自定義注解、ConstraintValidator。本文主要和大家講的是ConstraintValidator實(shí)現(xiàn),感興趣的可以了解一下2022-12-12
Java使用JDBC向MySQL數(shù)據(jù)庫(kù)批次插入10W條數(shù)據(jù)(測(cè)試效率)
使用JDBC連接MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)插入的時(shí)候,特別是大批量數(shù)據(jù)連續(xù)插入(100000),如何提高效率呢?今天小編通過(guò)本教程給大家介紹下2016-12-12
JavaWeb HttpServletResponse對(duì)象及常用方法
這篇文章主要介紹了JavaWeb-HttpServletResponse對(duì)象,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

