java多模块概念
在 Java 9 版本中,Java 语言引入了模块(module)这一重要概念,引入了 Java 代码分组的另一个级别,多模块则是基于此概念构建的项目模式。
模块是一组密切相关的包和资源以及一个新的模块描述符文件,是包含一组相关的包、类和资源的集合,并且可以声明对外部其他模块的依赖 13。每个模块都有一个模块描述符文件,通常命名为 module-info.java
,位于模块的根目录下,在这个文件中,可以声明该模块需要哪些其他模块,以及哪些包是公开给其他模块使用的 3。
Java module 多模块项目体现了模块化设计思想,不同的模块可以独立开发和维护,通过依赖关系进行协作。例如在 module-1
中通过 import
语句引入 module-2
中的 HelloService
类,实现模块间的调用 2。
以一个简单的项目为例,多模块项目有特定的目录结构。如创建一个包含两个模块的项目,其目录结构可能如下:
plaintext
java9-module-demo/ ├── main │ ├── module-info.java │ └── src │ └── com │ └── morris │ └── main │ └── Main.java └── user ├── module-info.java └── src └── com └── morris ├── other │ └── HiddenClass.java └── user └── User.java
在这个结构中,main
和 user
是两个不同的模块,各自有自己的 module-info.java
文件来描述模块信息 4。
jdk的版本:
jdk1.8就是java8,之后开始没有小数点,jdk9开始有多模块的概念,当前是jdk11