在 Java 里,“模块如何依赖”通常有两种常见语境:传统的 Maven/Gradle 项目依赖,以及 Java 9+ 的 Module System(JPMS)模块依赖。下面分别说明。
如果你说的是 Maven 多模块(multi-module),模块之间靠 <dependency> 依赖。
父模块 pom.xml
<modules>
<module>common</module>
<module>service</module>
</modules>
子模块 service 依赖 common
<dependency>
<groupId>com.example</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
</dependency>
✅ 前提:common 必须先 mvn install 或在同一构建中。
// settings.gradle
include 'common', 'service'
// service/build.gradle
dependencies {
implementation project(':common')
}
如果你说的是 Java Module(module-info.java),那是另一套机制。
// common/module-info.java
module com.example.common {
exports com.example.common.util;
}
// service/module-info.java
module com.example.service {
requires com.example.common;
}
javac -d out/common \
common/module-info.java common/com/example/common/*.java
javac -d out/service \
--module-path out \
service/module-info.java service/com/example/service/*.java
✅ 关键点:
requires = 依赖模块exports = 允许被依赖--module-path 而不是 -classpath| 情况 | 说明 |
|---|---|
| Maven 模块 ≠ Java Module | Maven 是构建概念,JPMS 是语言/运行时概念 |
| classpath ≠ module-path | 老项目用 classpath,模块项目用 module-path |
| 不 exports 就不能用 | JPMS 默认强封装 |
为了更精准回答,你可以说:
我可以直接给你可运行的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。