zoukankan      html  css  js  c++  java
  • IntelliJ IDEA学习记录

    IntelliJ IDEA学习记录 - Facets 与 Artifacts

    一、概念

    1、Facets

    Facets 表述了在 Module 中使用的各种各样的框架、技术和语言。表述了 Module 有什么特征,比如 Web,Spring 和 Hibernate 等;

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

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

    大多数 Facets 可以无冲突得添加到 Module 中,也有一些 Facets 是继承其他 Facets 的,这些 Facets 的添加就必须先添加他们的父 Facets ,这些 Facets 也要依赖 Intellij IDEA 的相关插件是否开启。

    作用:它的作用就是配置项目框架类支持。

    2、Artifacts

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

    artifact 可以是一个 archive 文件,也可以是一个包含以下结构元素的目录结构:

    -- (一个或多个)module的编译Output;

    -- 包含在module的依赖中的Libraries;

    -- 资源的集合,如web页面,图片,decriptor文件;

    -- 其他artifacts;

    -- 个别文件、目录和archives;

    作用:

    整合编译后的 java 文件,资源文件等,有不同的整合方式,比如war、jar、war exploded 等。

    对于 Module 而言,有了 Artifact 就可以部署到 web 容器中了。

    其中 war 和 war exploded 区别就是后者不压缩,开发时选后者便于看到修改文件后的效果。

    特别说明:

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

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

    二、output 目录

    Project 选项里有一个 Project compilerc output 目录,这个是整个 Project 的编译输出目录;

    Modules 的具体单个 Module 的 Path 选项里有个 Compiler output,可以选择继承 Project 或者自定义输出目录;

    Artifacts 也有一个 Output Directory;

    这几个的关系是怎样的呢?

    前两者的关系好理解,就是一个总体和个体配置的关系。

    而 Artifacts 里的输出目录是跟容器有关系的,

    在容器运行的时候,会把前两者中起作用的那个(个体配置优先)的 classes 文件复制到 Artifacts 配置的目录的 WEB-INF下边,

    然后把 Module 的 Facet 里的资源文件目录复制到 Artifacts 目录里,再就是复制 lib 下的 jar 包到 WEB-INF 下,之后项目就可以启动了。

    参考资料

    IntelliJ Idea中的 Facets 与 Artifacts

  • 相关阅读:
    简明 Vim 练级攻略
    设置命令的别名
    GPIO实验(二)
    GPIO实验(一)
    ubuntu文件夹默认列表显示
    ubuntu 12.04下gedit查看txt中文乱码解决办法
    ubuntu下超强的截图工具scrot
    原码 反码 补码 移码的关系(精简总结)
    内核编译
    [Linux] shell利用sed如何批量更改文件名详解[转载] | 不使用正则表达式,修改未知的文件名|
  • 原文地址:https://www.cnblogs.com/wangwangfei/p/13700727.html
Copyright © 2011-2022 走看看