java - 实际上,intellij IDEA 中的“模块”是什么?它与 Java 模块有什么不同?
问题描述
几天前我切换到 IntelliJ IDEA,并围绕 IDE 进行了一些研究。就像 .iml、.idea 等文件/目录一样。但我不明白“src”文件夹是什么。这里的其他答案表明它是一个模块,但我使用的是 JDK 1.8,它没有 JDK 9 的模块化特性。那么那个文件夹是什么?
解决方案
您将两种或三种不同的“模块”混为一谈。
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 类的整个模块,从而减小最终应用程序的大小。
这个模块系统是与上面讨论的其他两个项目“模块”类型不同的想法。
推荐阅读
- directadmin - 使用 directadmin 控制面板创建两级子域
- matlab - 陷波滤波最小化信号中的伪影
- sql-server - 如何在没有USE语句的情况下执行SqlPackage命令行生成脚本
- linux - poll() 系统调用卡在 restart_syscall()
- excel - 如何使用excel vba从网站中提取价格?
- css - 如何在 Odoo 10 中将 CSS 文件添加到 qweb 报告?
- vue.js - 在安装的钩子中出现错误:VUE js 中的“RangeError:超出最大调用堆栈大小”
- if-statement - Nginx 配置动态 $host ENV 变量
- powershell - Powershell 中的格式化列表问题
- python-3.x - 彩票应用程序 - AttributeError:“功能”对象没有属性“交集”