Facets

Facets表述了在Module中使用的各种各样的框架、技术和语言。这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致。

使用Facets能让我们下载并配置framework所必须的组件,会自动生成各种各样的描述符,并存储在适当的位置,等等。

大多数Facets可以无冲突得添加到Module中。

也有一些Facets是继承其他Facets的,这些Facets的添加就必须先添加他们的父Facets,这些Facets也要依赖Intellij IDEA的相关插件是否开启.

目前可用Facets列表(包含存在依赖关系的Facets)

举例1:Web Facets

配置Web、EJB、Java EE Application的Facets大致相似,所以我们放在一起介绍一下,不一样的地方会有标记:

下面说下Web、EJB、Java EE Application Facet:

下面分别介绍每一项配置:

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里的文件夹分为以下几类:

1、Source Roots(或Source Folders,展示样式: 

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

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

2、Resource Roots(或Resource Folders,展示样式:  ,只有Java
Module才可用):

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

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

3、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 (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要求我们这样做的,以便其能识别这些文件并整合各插件实现功能。

Intellij IDEA的Facets和Artifacts的更多相关文章

  1. Intellij IDEA 14.x 中的Facets和Artifacts的区别

    Facets和Artifacts的区别: Facets 表示这个module有什么特征,比如 Web,Spring和Hibernate等: Artifact 是maven中的一个概念,表示某个modu ...

  2. IDEA里面的facets和artifacts的讲解

    Facets: Facets表述了在Module中使用的各种各样的框架.技术和语言.这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致. 使用F ...

  3. IntelliJ Idea中的 Facets 与 Artifacts

    在公司和家用电脑上不同版本的idea做实验发现过程中会有些不同,遇到过一些问题,也正是这些问题使得自己能更进一步了解项目构建过程中的细节,特别记录一下.   这个是[温故知新] Java web 开发 ...

  4. IntelliJ IDEA(社区版)学习记录

    一.下载 地址:官网下载地址 二.安装 运行安装程序,一路下一步.注意选择安装路径. 三.基本概念 project:相当于donet下的解决方案 module:相当于donet下的项目工程 四.IDE ...

  5. IntelliJ IDEA学习记录

    一.下载 地址:官网下载地址 二.安装 运行安装程序,一路下一步.注意选择安装路径. 三.基本概念 project:相当于donet中的解决方案(solution),eclipse中的工作空间(wor ...

  6. idea fect

    idea facet 昨天从svn检查一个项目后,部署至tomcat服务器,启动成功,但实际代码其实没有进去, 因为该项目不是maven项目, artifacats是自己配的, 应该是这里弄错的. 最 ...

  7. IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目

    转自:http://www.php-note.com/article/detail/854 IntelliJ IDEA 14.x 与 Tomcat 集成,创建并运行Java Web项目 作者:php- ...

  8. IntelliJ IDEA创建web项目及异常问题解决

    IDEA配置Tomcat: 1.下载Tomcat,本次使用的是apache-tomcat-6.0.43 2.IDEA配置Tomcat 在idea中的Settings(Ctrl+Alt+s)(或者点击图 ...

  9. 理解 IntelliJ IDEA 的项目配置和Web部署

    1.项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行.最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse ...

随机推荐

  1. openwrt使用3G拔号的实践笔记

    参照文档: https://soha.moe/post/make-4g-wifi-ap-with-openwrt.html 步骤: 1.安装必要的包: opkg update opkg install ...

  2. 用 Python 加密文件

    生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库. 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而 ...

  3. 关于ServletContext的私有方法全局获取返回null问题getServletContext().setAttribute("count", 1)

    1.在Servlet重写了init方法中获取getServletContext()报错提示为空指针 重写了init(ServletConfig)方法,但是重写的init方法内部没有调用super.in ...

  4. Java中判断字符串是否为数字

    转载:https://blog.csdn.net/u013066244/article/details/53197756 用JAVA自带的函数 public static boolean isNume ...

  5. Redis-3.2.1集群内网部署

    摘要: Redis-3.2.1集群内网部署 http://rubygems.org国内连不上时的一种Redis集群部署解决方案.不足之处,请广大网友指正,谢谢! 一. 关于redis cluster  ...

  6. mybatis oracle两种方式批量插入数据

    mybatis oracle两种方式批量插入数据 注意insert,一定要添加: useGeneratedKeys="false" ,否者会报错. <insert id=&q ...

  7. thinkpadT470P安装问题

    [问题描述]: 最近在将Thinkpad E430c的ubuntu系统重装成windows 7的过程中,出现了装好win7系统后,开机自动进入boot menu界面的问题,而且不论你选择从光驱还是硬盘 ...

  8. 查看java的jar包源码

    1.jd-gui (windows环境) 下载地址 https://files.cnblogs.com/files/indifferent/jd-gui-windows-1.5.1.zip 下载并解压 ...

  9. h5页面滑动卡顿解决方法

    解决方式: 给滚动的元素加样式:-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling(允许独立的滚动区域和触摸回弹) 如果值为au ...

  10. Uoj #35. 后缀排序(后缀数组)

    35. 后缀排序 统计 描述 提交 自定义测试 这是一道模板题. 读入一个长度为 nn 的由小写英文字母组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在 ...