定义基本模块
模块在名为 module-info.java 的文件中定义,名为模块描述符。它应该放在源代码根目录中:
|-- module-info.java
|-- com
|-- example
|-- foo
|-- Foo.java
|-- bar
|-- Bar.java
这是一个简单的模块描述符:
module com.example {
requires java.httpclient;
exports com.example.foo;
}
模块名称应该是唯一的,建议你使用与包使用的相同的反向 DNS 命名符号来帮助确保这一点。
模块 java.base 包含 Java 的基本类,对于任何模块都是隐式可见的,不需要包含它。
requires 声明允许我们使用其他模块,在示例中导入模块 java.httpclient。
模块还可以指定 exports 包含哪些包,从而使其对其他模块可见。
exports 子句中声明的包 com.example.foo 将对其他模块可见。com.example.foo 的任何子包都不会被导出,他们需要自己的 export 声明。
相反,exports 条款中未列出的 com.example.bar 将不会被其他模块看到。