Intellij Idea - 深入探讨


本教程的前四章旨在为初学者提供 IntelliJ 的基本概述。本节深入探讨 IntelliJ 并讨论有关项目、其格式以及其他内容的更多信息。

了解项目

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

了解模块

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

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

  • 转到文件 → 项目结构。
  • 选择模块并单击加号图标。
  • 它将显示导入模块的选项。
模块特点

了解文件夹

内容根目录是一个包含组成模块的所有文件的文件夹。一个模块可以有多个内容文件夹。文件夹分为以下类型 -

  • Sources - 通过将此类别分配给文件夹,我们指示 IntelliJ 该文件夹及其子文件夹包含 java 源代码,并且应该将其作为编译过程的一部分进行编译。

  • 测试- 通过将此类别分配给文件夹,我们指示 IntelliJ 它是单元测试的位置。此文件夹可以访问 Sources 文件夹中的类。

  • 资源- 它代表项目中使用的各种资源文件,例如图像、XML 和属性文件。在编译过程中,该文件夹的内容将按原样复制到输出文件夹。

  • 已排除- 已排除文件夹中的内容将不会被 IntelliJ 索引。这意味着 IntelliJ 将不会提供代码完成建议和其他提示。例如,默认排除输出目录和目标目录。

  • 测试资源- 这与用于单元测试的资源类似。

内容根

了解图书馆

库是不同类的汇编。库实现了代码的可重用性。在 Java 中,库可以包含在 ZIP、Jar 或简单的文件夹中。我们可以在三个不同的级别定义库。这些级别是全局、项目和模块级别。

  • 全球级别- 由所有项目共享。

  • 项目级别- 由项目的所有模块共享。

  • 模块级别- 由这些模块的类共享。

了解方面

Facets 是模块的扩展。他们增加了对框架和技术的支持。当向模块添加构面时,IntelliJ 会识别它添加了支持。例如,编辑器中的提示和帮助、窗口栏中的新工具、依赖下载等。您可以从“文件”→“项目结构”窗口添加构面,如下所示 -

窗栏

文物

工件是项目的输出。它可以是简单的 JAR 文件、Java EE 应用程序或 Java EJB 应用程序。如果我们使用 Gradle 或 Maven 等外部构建工具,那么 IntelliJ 会自动为它们添加工件。可以通过导航到文件 → 项目结构来创建工件,如下所示 -

文物

导入现有项目

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

  • 从现有源导入
  • 从构建模型导入它。

目前支持Gradle和Maven构建工具。导入项目 -

  • 从现有源导航到文件 → 新建 → 项目。
  • 选择现有项目的目录、Maven 的 pom.xml 或 Gradle 的构建脚本。
  • 单击“确定”按钮。
导入现有项目

项目格式

IntelliJ 支持两种类型的项目格式,一种是基于目录的,另一种是基于文件的。基于目录的格式是推荐的较新格式。默认情况下,IntelliJ 创建基于目录的项目格式。您可以在创建新项目时选择项目格式。在新项目窗口中,只需单击更多设置,如下图所示 -

项目格式

基于目录的项目格式

这种格式有助于在项目中创建一个 idea 文件夹,并将所有配置文件保存在该文件夹中。设置被分组到 xml 文件中。例如,它将创建misc.xml、modules.xml、workspace.xml等。以下屏幕截图将帮助您了解其工作原理 -

基于目录的项目格式

基于文件的项目格式

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

基于文件的项目格式

要将基于文件的项目转换为基于目录的项目,请转到文件 → 另存为基于目录的格式

基于目录与基于文件的项目格式

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

  • 相关设置存储在单个文件中,可以更轻松地以基于目录的项目格式进行管理。

  • 如果文件夹包含 idea 子文件夹,则 IntelliJ 会识别该项目。因此,您没有明确选择 ipr 项目。

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