定义基本模块
模块在名为 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
将不会被其他模块看到。