You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Java Module的Jar包作为依赖引入Gradle多模块项目?

问题出在哪?

你手动通过IntelliJ添加Jar包的操作,只是把它丢到了项目的classpath里,但Java Module(JPMS)体系下,模块依赖必须放在module path上才行。更关键的是,Gradle作为你的构建工具,项目的依赖规则完全由它管控,IDE里手动加的Jar不会被Gradle识别为合法的模块依赖,自然会导致module-info.java里的requires语句报错。

一步步解决问题

1. 先把Jar放对地方

在gradle-module-project1的根目录下新建一个libs文件夹,把你构建好的superapi.jar复制进去。这样做是为了让Gradle能方便找到这个本地依赖,也让项目结构更整洁。

2. 让Gradle接管依赖配置

以你要在application子项目里用superapi为例,打开application/build.gradle.kts,做以下修改:

首先,添加本地仓库的配置(如果你的项目里还没加的话):

repositories {
    // 保留你原有的仓库,比如mavenCentral()
    flatDir {
        dirs(rootProject.file("libs"))
    }
}

然后在依赖块里添加superapi的依赖:

dependencies {
    // 保留你原有的其他依赖
    implementation(files(rootProject.file("libs/superapi.jar")))
    // 也可以用更简洁的写法:implementation(":superapi")
}

3. 同步Gradle,搞定报错

在IntelliJ里点击Gradle工具栏的「Sync Project with Gradle Files」按钮,等同步完成后,再回到application/src/main/java/module-info.java里添加:

requires com.test.modules.superapi;

这时候报错应该就消失了。

额外要注意的点
  • 确认superapi.jar是个合法的Java Module:它的module-info.java里必须明确声明了module com.test.modules.superapi { ... },而且要导出你需要用的包(比如exports com.test.superapi;),不然就算依赖上了也用不了里面的类。
  • 以后别再用IDE手动加依赖了,Gradle才是项目依赖的“话事人”,所有依赖都通过Gradle配置来管理,IDE会自动同步Gradle的配置,这样就不会出现这类不一致的问题了。

内容的提问来源于stack exchange,提问作者bobbyrne01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:32:46