Intellij Idea 简明教程

Intellij Idea - Deep Dive

本教程的前四章旨在让初学者对 IntelliJ 有一个基础了解。本部分深入探讨 IntelliJ,并讨论更多有关项目、其格式以及其他内容。

Understanding Projects

项目是指你正在开发的应用程序或软件。它可以包含多个模块、类、库、配置等等。它处于层次结构中的最顶端。

Understanding Modules

模块位于“项目”下列的一级。模块是一个独立的实体,可以独立于其他模块进行编译、调试和运行。单个项目可以包含多个模块。你可以随时添加或删除项目中的模块。

除此之外,我们还可以导入现有模块。请按照下列步骤导入现有模块 −

  1. 转到文件 → 项目结构。

  2. 选择模块并单击加号图标。

  3. 它将显示导入模块的选项。

modules feature

Understanding Folders

Content root 是一个包含构成模块的所有文件的文件夹。一个模块可以有多个内容文件夹。文件夹分以下类型 −

  1. Sources − 通过将此类别指定给文件夹,我们指示 IntelliJ 该文件夹及其子文件夹包含 Java 源代码,且它应作为编译过程的一部分进行编译。

  2. Tests − 通过将此类别指定给文件夹,我们指示 IntelliJ 它是一个单元测试的位置。此文件夹可以访问源文件夹中的类。

  3. Resources − 它表示项目中使用的各种资源文件,例如图像、XML 和属性文件。在编译过程中,此文件夹的内容会原样复制到输出文件夹。

  4. Excluded − 排除的文件夹中的内容不会由 IntelliJ 编入索引。这意味着 IntelliJ 不会提供代码完成建议和其他提示。例如,输出目录和目标目录默认情况下被排除。

  5. Test resources − 这类似于资源并且用于单元测试。

content root

Understanding Libraries

库是由不同类的编译组成的。库使代码可以重用。在 Java 中,库可以封装在 ZIP、Jar 或简单的文件夹中。我们可以分三个不同级别定义库。级别为 - 全局、项目和模块级别。

  1. Global level – 所有项目共享。

  2. Project level – 项目的所有模块共享。

  3. Module level – 属于这些模块的类共享。

Understanding Facets

构面是模块的扩展。它们增加对框架和技术的支持。将构面添加到模块时,IntelliJ 会识别出增加的支持。举例而言,编辑器中的提示和帮助、窗口栏中的新工具、依赖项下载等等。您可以从 File → Project Structure 窗口添加构面,如下所示:

window bar

Artifacts

构建产品是项目的输出。可以是简单的 JAR 文件、Java EE 应用程序或 Java EJB 应用程序。如果我们使用 Gradle 或 Maven 等外部构建工具,则 IntelliJ 会自动为它们添加构建产品。可以导航至 File → Project Structure 创建构建产品,如下所示:

artifacts

Importing Existing Project

在本节中,我们将了解如何导入现有项目。我们可以通过两种方式导入项目:

  1. 从现有源代码导入

  2. 从构建模型中导入

当前,它支持 Gradle 和 Maven 构建工具。要导入项目,请:

  1. 导航至 File → New → Project from the existing source。

  2. 选择现有项目的目录、Maven 的 pom.xml 或 Gradle 的构建脚本。

  3. 点击确定按钮。

importing existing project

Project Formats

IntelliJ 支持两种项目格式,一种是 directory-based ,另一种是 file-based 。基于目录的格式较新,建议使用。默认情况下,IntelliJ 会创建基于目录的项目格式。您可以在创建新项目时选择项目格式。在新建项目窗口中,只需单击更多设置,如下面的图片所示:

project formats

Directory-based Project Format

此格式有助于在项目中创建一个 idea 文件夹,并将项目中的所有配置文件保留在此文件夹中。设置被分组到 xml 文件中。举例而言,它将创建 misc.xml, modules.xml, workspace.xml 等。以下屏幕截图将帮助您了解它的工作原理:

directory based project format

File-based Project Format

它将创建两个项目文件,分别带有 ..iprwpr 扩展名。ipr 文件将包含特定于项目的设置,而 wpr 文件将包含特定于工作区设置。

file based project format

要将基于文件的项目转换为基于目录的项目,请转至 File → Save as a Directory-Based format

Directory-based vs File-based Project Format

与基于文件的项目格式相比,基于目录的项目格式将设置存储在带有有意义名称的单独文件夹中。其它差异:

  1. 相关设置存储在单个文件中,以便更容易地在基于目录的项目格式中进行管理。

  2. 如果文件夹包含 idea 子文件夹,则 IntelliJ 会识别该项目。因此,您不必明确选择 ipr 项目。

  3. 基于目录的项目格式将设置分解为多个文件,因此更容易选择特定类型的设置来存储在版本控制系统中。