IDEA里面的facets和artifacts的讲解

Facetshtml

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

---- add (Alt+Insert) :用这个图标或者快捷键,来添加一个新的部署描述符,在打开的Deployment Descriptor Location对话框选择部署描述符的位置和用到的指定版本(版本不可选就不用管它)。

----  edit1 (Enter) :使用这个图标或快捷键,来从新指定部署描述符的位置。

---- delete (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部署的根目录的相对路径。

---- add (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展现样式是: moduleFolder or folder.

分类:一个Content Root里的文件夹分为如下几类:

一、Source Roots(或Source Folders,展现样式: rootSource

标为此类的文件夹,告诉Intellij IDEA,此文件夹及其子文件夹应做为构建过程的一部分进行编译。

Java的Module中,Source Roots的子文件夹表明着Java的包结构。

二、Resource Roots(或Resource Folders,展现样式: rootResourceIJ ,只有Java Module才可用):

在咱们的应用中,是给resource文件用的。如,图片文件、各类各样的xml配置文件和properties属性文件等。

在构建过程当中,全部resource Roots下的内容将原封不动得拷贝到Output文件夹。

三、Excluded Roots(展现样式:rootExcluded):

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中点击add将弹出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 (File | Project Structure | Artifacts)

常规设置:

Name :artifact配置的名称,又或是artifact的名称。

Type :artifact的类型

Output directory :当执行build(Build | Build Artifacts)时,artifacts将被放到这个指定的目录下。

Build on make :当build project(Build | Make Project)时,会自动build artifacts。

因而可知,

①当咱们项目中的Type 和 Output directory是:

此时,咱们的Artifacts是这个样子:(已编译的资源和已打包的应用)

②当咱们的Type 和 Output directory是:

此时咱们的Artifacts是这样:(一个目录结构)

Artifacts的默认配置会是这样:

另外关于Artifacts每一个TAB的配置看:Artifacts--Intellij IDEA

 

总结,不管配置Facets、Artifacts仍是标记Content Root,都是Intellij IDEA要求咱们这样作的,以便其能识别这些文件并整合各插件实现功能。

相关文章
相关标签/搜索