IDEA里面的facets和artifacts的讲解
Facets:
Facets表述了在Module中使用的各种各样的框架、技术和语言。这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致。
使用Facets能让我们下载并配置framework所必须的组件,会自动生成各种各样的描述符,并存储在适当的位置,等等。
大多数Facets可以无冲突得添加到Module中。
也有一些Facets是继承其他Facets的,这些Facets的添加就必须先添加他们的父Facets,这些Facets也要依赖Intellij IDEA的相关插件是否开启.
举例1:Web Facets
配置Web、EJB、Java EE Application的Facets大致相似,所以我们放在一起介绍一下,不一样的地方会有标记:
下面说下Web、EJB、JavaEE 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要求我们这样做的,以便其能识别这些文件并整合各插件实现功能。
IDEA里面的facets和artifacts的讲解的更多相关文章
- [python]如何理解uiautomator里面的 child, child_by_text, sibling,及使用场景
如何理解uiautomator里面的 child, child_by_text, sibling,我们借助android原生的uiautomatorviewer抓取的控件来进行理解 以如下图进行详细讲 ...
- Intellij IDEA的Facets和Artifacts
Facets: Facets表述了在Module中使用的各种各样的框架.技术和语言.这些Facets让Intellij IDEA知道怎么对待module内容,并保证与相应的框架和语言保持一致. 使用F ...
- Activity往另外一个Activity传值,Fragment获取另外一个Activity里面的值。
在oneActivity中实现跳转到MainActivity //intent 用来跳转另外一个MainActivity,bundle传值到MainActivity Intent Ma ...
- Java基本概念(2)J2EE里面的2是什么意思
J2EE里面的2是什么意思 J2SE,J2SE,J2ME中2的含义要追溯要1998年.1998年Java 1.2版本发布,1999年发布Java 1.2的标准版,企业版,微型版三个版本,为了区分这三个 ...
- 在wex5平台grid里面的gridselect下拉不能显示汉字问题
当grid里面有gridSelect组件的时候,gridSelect里面的bind-ref是对应的数据库存入字段(int类型),bind-labelRef是对应的计算字段(视图里面的),而option ...
- dede文章调用时过滤调 body里面的style属性和值
dede 发布文章的时候会在里面的标签中添加一些style 属性,现在改网站想去掉这些属性和里面的值,因为文章太多所以就用下面的方法 \include\arc.listview.class.php 在 ...
- 提取数据库字段里面的值,并改变+图片懒加载,jquery延迟加载
要求:手机端打开某个页面的详细信息,因为网速或者别的原因,响应太慢,因为图片大的原因,希望先进来,图片在网页运行的情况再慢慢加载(jquer延迟加载) http://www.w3cways.com/1 ...
- JAVA里面的IO流(一)分类2(节点流和处理流及构造方法概要)
IO流根据处理对象的不同分为节点流和处理流. 直接对文件进行处理的流为节点流: 对流进行包装从而实现对文件的优化处理的流为处理流. 节点流类型: 可以看出,节点流主要分这几大类: 文件流 文件流构造方 ...
- 头文件里面的ifndef /define/endif的作用
c,c++里面,头文件里面的ifndef /define/endif的作用 今天和宿舍同学讨论一个小程序,发现有点地方不大懂······ 是关于头文件里面的一些地方: 例如:要编写头文件test.h ...
随机推荐
- sublime Text3的使用
sublime text百度百科: Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python ...
- 用div布局,页面copyright部分始终居于
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- nyoj48-小明的调查作业
48-小明的调查作业 内存限制:64MB时间限制:1000msSpecial Judge: No accepted:3submit:4 题目描述: 小明的老师布置了一份调查作业,小明想在学校中请一些同 ...
- nyoj14-会场安排问题
会场安排问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工作就 ...
- static类型autowired 注入失败
原代码:注入commonService对象失败 @Autowired private static CommonService commonService; public static List< ...
- H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器
H3C SecPath U200-S 如何在内网使用外网IP地址访问内网服务器 ------------------------------------------------------------ ...
- 在magento的eav模型中如何在更新记录时只在value表的原值上更新
1,一般情况下,当我们在调用getModel在load某条实体接着更新对应实体上的值是,都不会覆盖原来的实体value表上的值,而是保留原来的,并在value表上重新创建一条值记录,比如初始表如下: ...
- python处理时间戳
代码如下: def timestamp_datetime(value): format = '%Y-%m-%d %H:%M:%S' # value为传入的值为时间戳(整形),如:133 ...
- HDU 1757
简单的矩阵构造题,参看我前几篇的谈到的矩阵的构造法. #include <iostream> #include <cstdio> #include <cstring> ...
- ShareREC for iOS v1.0.4 已经公布
ShareREC for iOS v1.0.4 已经公布 版本号:v1.0.4 2015-3-13 1.新增视频列表的筛选排序功能 2.修复在開始录制后,没有调用结束录制直接进入社区崩溃问题 3.优化 ...