温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java模块如何依赖

发布时间:2026-09-19 05:28:15 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

在 Java 里,“模块如何依赖”通常有两种常见语境:传统的 Maven/Gradle 项目依赖,以及 Java 9+ 的 Module System(JPMS)模块依赖。下面分别说明。


一、构建工具层面的“模块依赖”(最常见)

1. Maven 多模块项目

如果你说的是 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 或在同一构建中。


2. Gradle 多模块项目

// settings.gradle
include 'common', 'service'
// service/build.gradle
dependencies {
    implementation project(':common')
}

二、Java 9+ 模块系统(JPMS)依赖

如果你说的是 Java Module(module-info.java),那是另一套机制。

1. 定义模块

// 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;
}

2. 编译运行

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 默认强封装

四、你可以告诉我

为了更精准回答,你可以说:

  • 用的是 Maven / Gradle / 纯 javac
  • 是 多模块项目 还是 Java Module System
  • 报错信息或具体场景(例如“module not found”)

我可以直接给你可运行的示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手