可以先看另一篇文章 “理解 IntelliJ IDEA 的项目配置和Web部署”

一、Modules

Content Root:是包含组成Module的所有文件的文件夹。一个Module可以包含多个Content Root,但多数情况一个就够了。

如果一个Module只是作为一个单独的依赖库,显然是不需要Content Root的

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

1. Source Folders 源代码文件目录

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

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

2、Resource Folders ,资源文件目录,只有Java Module才可用:

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

在构建过程中,所有 Resource Folders下的内容将原封不动得拷贝到output path文件夹这个位置上(也由modules指定)。

3、Excluded Folders:

Intellij IDEA对该文件夹基本忽略,对该文件夹下的文件提供非常有限的代码辅助。即便是搜索,Intellij IDEA也不会查找这个文件

夹下的内容。把一些不怎么重要的文件夹标记为Excluded Roots,可以提高Intellij IDEA的用户体验。

特殊情况下,如果一个Module只是作为一个单独的依赖库,显然是不需要Content Root的(未遇到该情形,不太理解)。

上述文件夹分类既可以采用IDEA智能生成的默认配置,也可以手动指定

如果不指定Source Folders 和 Resource Folders,那么项目的 build 就无法正常完成 (不过IDEA似乎比较智能,若是有文件

夹命名为resources,它会默认将其当做 Resource Folders)

IDEA并不会像eclipse一样实时编译,而是在项目运行前一刻,将Source Folders 和 Resource Folders中的内容进行编译与

copy,并放置在指定目录下。

这里指定了编译后的文件存放位置,既可以直接继承至project的配置,也可以每个module都单独指定。

----------------------------------------------------------------------------------------------------------------------------------

二、Facets

Facets 英文翻译为:方面

Facets 表示这个module有什么特征,比如 Web,spring 和 hibernate等;

表述了在Module中使用的各种各样的框架、技术和语言。

这些Facets让IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致。

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

也有一些Facets是继承其他Facets的,这些Facets的添加就必须先添加他们的父Facets。

大多数Facets可以无冲突得添加到Module中,这些Facets也要依赖Intellij IDEA的相关插件是否开启。

举例1:Web Facets (类似的有EJB、Java EE Application Facet

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

Name:输入该Web Facet的名称,上图用的是Web作为名称,也是默认的名称。

Deployment Descriptors:在这部分,管理应用的部署描述符。

---- Type:只读字段,展示部署描述符类型。对应web facet 的类型有:Web Module Deployment Descriptor

---- Path:可编辑且会自动校验正确性,属于自动生成,无需改动,展示部署描述符的位置。

Web Resource Directories:在这部分,Web 资源目录路径对话框

---- Web Resource Directory :指定所需的Web Resource所在的本地目录。Web Resource目录包含Web开发所需的文

件:JSP、HTML、XML等。Web Resource目录下的内容会被拷贝到由Relative Path所指定的Web模块部署目录。

---- Path Relative to Deployment Root:指定部署Web Resource的相对目录,相对于部署根目录。Web Resource相对于Web

部署的根目录的相对路径。如果输入斜杠'/',那么Web Resource目录里的文件将被拷贝到部署目录的根目录。

通过这两组配置,指定了web.xml文件的访问路径和部署root的位置

这里需要弄清一个概念,Deployment Root指的是项目部署的根目录,也就是下图标出的位置,他区别于eclipse中部署项目到

tomcat,通常会把项目部署到tomcat安装目录下的webapps目录下。而IDEA默认位置则根据项目不同自动生成在该项目out文

件夹下,通常我们也可以自行指定。

---------------------------------------------------------------------------------------------------------------------------

Artifacts

artifact是一个项目资源的组合体。例如,一个已编译的java类的集合,一个已打包的java应用

Artifact 是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式;

一个module有了 Artifacts 就可以部署到应用服务器中了!

artifact你把它理解成“生成的东西”就差不多了。这个词强调的是这是你软件生产过程中某一步的产生物,不像程序本身,或者是

配置文件这些,是你手写出来的。

对于Artifacts来讲,最重要的应该是Output Diretory 以及 Output Layout。

前者指定了项目的部署根目录(tomcat启动后去该文件夹找到对应项目再运行),后者指定了部署根目录下的内容及结构层次。

显然项目若想正常运行,必须将classes文件,资源文件,配件文件等信息都放在Output Diretory下

可以放入Output Diretory的元素都在Available Elements侧栏中

该module如果包含 web facet ,其web资源文件和部署描述文件web.xml 是默认且必须放入的,必须在modules中配置好

演示一下 output root 结构的生成,最初清空后的状态

先把jar包导入,IDEA会默认生成对应的文件夹放入jar包,

然后放入编译产物

最后放入web资源文件,包括了web.xml文件

至此Arifact配置好了

IDAE中Modules, Facets 和 Artifacts 的作用及区别相关推荐

  1. IDEA中的facets和artifacts的介绍

    Project setting 里面Facets和Artifacts的作用 1.Facets 英文翻译为:方面,(事务的)面.表述了在Module中使用的各种各样的框架.技术和语言.这些Facets让 ...

  2. IntelliJ Idea中的 Facets 与 Artifacts

    转载自原文链接 转载自原文链接 这个是[温故知新] Java web 开发系列编写过程中发现的.总结性要点在最后边,中间过程不想看可跳过. 首先是 Modules,如下图所示,最开始生成的 Modul ...

  3. Idea中的Facets 与 Artifacts

    这个是Java web 开发系列编写过程中发现的.总结性要点在最后边,中间过程不想看可跳过. 首先是 Modules,如下图所示,最开始生成的 Module 里的 jdwork,并没有把我们新生成的 ...

  4. spring中的BeanFactory与ApplicationContext的作用和区别?

    作用:1. BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期. 2. ApplicationContext除了提供上述Be ...

  5. Linux中软链接与硬链接的作用、区别、创建、删除

    目录 1.软链接与硬链接的作用 (1)软链接 (2)硬链接 2.软.硬链接的相同点与区别 3.创建软.硬链接 4.删除方式 1.软链接与硬链接的作用 (1)软链接 软链接是Linux中常用的命令,它的 ...

  6. linux中bin与sbin目录的作用及区别介绍

    在linux系统中,有两个重要的目录:bin与sbin,分别包括/bin./usr/bin/与/sbin./usr/sbin/. bin:  bin为binary的简写,主要放置系统的必备执行文件,例 ...

  7. [转载] java中final,finally,finalize三者的作用和区别

    参考链接: Java中final,finally和finalize Final是一个修饰符: 当final修饰一个变量的时候,变量变成一个常量,它不能被二次赋值 当final修饰的变量为静态变量(即由 ...

  8. Latex中 .cls和.sty文件的作用和区别

    一般的,.cls和.sty文件是用来提高LaTeX的排版效果的补充文件.它们分别用命令 \documentclass{...} 和命令 \usepackage{...} 来装载到LaTeX文件..cl ...

  9. linux中的bin目录的作用,linux中bin与sbin目录的作用及区别介绍

    在linux系统中,有两个重要的目录:bin与sbin,分别包括/bin./usr/bin/与/sbin./usr/sbin/. bin: bin为binary的简写,主要放置系统的必备执行文件,例如 ...

最新文章

  1. 单纯形法求最小值的检验数_【运筹学】单纯形法(笔记和思考)
  2. 2020深度文本匹配最新进展:精度、速度我都要!
  3. linux下Mariadb的二进制安装
  4. 使用html+css+js实现3D相册
  5. Spring @RequestMapping注解示例
  6. python3 文本处理_解决python3 写入中文文本查看为乱
  7. canopy java_在Windows上安装带有Enthought Canopy的Theano
  8. 《Lua程序设计》第7章 迭代器与泛型for 学习笔记
  9. python调用java的方法-JPype的简单使用
  10. 威海市第四届ACM大赛感想
  11. 【论文阅读笔记】Beamforming Optimization for Wireless Network Aided by IRS with Discrete Phase Shifts
  12. Linux- 什么是PID?
  13. 从0到10W粉,这一年我在csdn的成长之路
  14. 微信小程序 登录与退出登录
  15. cisco服务器网关自动清空,监控、重置和删除Cisco CallManager的MGCP网关
  16. 数据集划分函数sklearn.model_selection.train_test_split参数详解
  17. linux 网络 指示灯 亮,Linux网络子系统中GRO的实现
  18. Java基础编写记事本
  19. Spring Boot 实践折腾记(12):支持数据缓存Cache
  20. 什么是REST以及 RESTful?

热门文章

  1. win10我的电脑不见了怎么解决?
  2. Spark基础 DAG
  3. 操作系统-虚拟内存、虚拟地址空间机制
  4. SOC计算方法:卡尔曼滤波算法
  5. ###web前端###html
  6. 大容量数据传输,原来可以这么玩
  7. U-boot最新版本下载
  8. 景观设计主题命名_景观命名汇总总结
  9. 做产品经理 而不是功能经理(转淘宝鬼脚七)
  10. 在 C++ 和 Python 中使用 YOLOv5 OpenCV DNN 进行对象检测