首页 > 解决方案 > 实际上,intellij IDEA 中的“模块”是什么?它与 Java 模块有什么不同?

问题描述

几天前我切换到 IntelliJ IDEA,并围绕 IDE 进行了一些研究。就像 .iml、.idea 等文件/目录一样。但我不明白“src”文件夹是什么。这里的其他答案表明它是一个模块,但我使用的是 JDK 1.8,它没有 JDK 9 的模块化特性。那么那个文件夹是什么?

标签: javaintellij-idea

解决方案


您将两种或三种不同的“模块”混为一谈。

Maven 模块

在一个 Maven 驱动的项目中,也许是当今 Java 开发人员最常用的项目,一个项目可以由多个子项目组成,每个子项目分别编译。这些子项目在 Maven 中称为模块

IntelliJ 项目模块

在 Maven、Gradle 和 Ivy 等开源代码和依赖项项目管理工具兴起之前的几年,每个 IDE 都有自己的专有项目管理系统和元数据文件格式。

如果我没记错的话,IntelliJ 用于定义项目的专有系统包括“模块”。

如果您在项目中使用专有项目工具,我强烈建议您从一个新的 Maven 驱动项目重新开始。Maven 带来了一些学习曲线,但非常值得,因为它可以节省很多时间和以后的麻烦。此外,如果您想切换工具,可以轻松地将 Maven 项目移动到另一个 IDE。

Java 模块化

除了命名空间之外,Java 9 还对类的组织方式进行了重大补充。这正式称为Java 平台模块系统。也非正式地以其项目代号Project Jigsaw着称。

模块系统定义了将类和JVM物理捆绑在一起的分发格式。以前与每个 JVM 捆绑在一起的标准类现在已重新组合到单独的 Java 模块中。您现在可以构建包含自己的 JVM 的控制台应用程序或桌面应用程序,其中仅包含您的应用程序实际使用的标准类。可以省略标准 Java 类的整个模块,从而减小最终应用程序的大小。

这个模块系统是与上面讨论的其他两个项目“模块”类型不同的想法。


推荐阅读