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

多模块项目如何仅依赖其他模块的指定类而非依赖整个模块

实现方案

方案1:抽取公共类到独立基础模块(最推荐)

这是符合多模块架构设计规范的长期方案,可维护性最高

  • 新建独立的公共基础模块,例如命名为:module-common
  • 将需要用到的特定类迁移到:module-common中
  • 原目标模块:module和你的当前业务模块分别依赖:module-common即可,依赖配置如下:
implementation project(':module-common')

这种方式没有冗余代码,也不会引入多余的依赖内容,后续类修改只需维护一份。

方案2:配置目标模块打包仅导出指定类

如果不想拆分模块,可修改目标模块:module的打包配置,让它只打包你需要的特定类,再依赖这个裁剪后的产物:

// 在目标模块 :module 的 build.gradle 中添加配置
jar {
    include 'com/xxx/xxx/TargetClass.class'
}

然后你当前模块的依赖不需要改,还是implementation project(':module'),此时引入的就只有你指定的类了。如果目标类有依赖其他类,需要把关联类也加到include规则里。

方案3:依赖时过滤多余内容(临时方案)

直接在你当前模块的依赖配置里过滤掉不需要的内容,仅保留指定类:

implementation(project(':module')) {
    // 排除所有内容,仅保留需要的类
    exclude group: '*', module: '*'
    include 'com/xxx/xxx/TargetClass.class'
}

这种方式适合临时测试使用,不建议长期用,一旦目标类的依赖关系变动很容易出现类找不到的异常。

方案4:直接拷贝类文件(极不推荐)

仅用于临时测试场景,直接把目标类的源码拷贝到你当前模块的对应包路径下。这种方式会产生代码冗余,后续原类修改后需要手动同步,维护成本极高,正式项目禁止使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 20:15:07