V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
silkgrower
V2EX  ›  Android

如何合并多个 module 下的相同的 jar 包

  •  
  •   silkgrower · 2019-05-31 11:27:35 +08:00 via Android · 9515 次点击
    这是一个创建于 2014 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于项目功能的演进,导致 app 依赖的多个 module 下存在相同的 jar 包,包的体积较大。例如 app 依赖了 A,B,C,D 等 module,app 下有 1,2,3 三个 jar 包; Amodule 下引入了 3,4,5 三个 jar 包; Bmodule 引入了 4,5,6 三个 jar 包。如何去掉重复的 3,4,5 ?

    7 条回复    2019-07-10 10:36:47 +08:00
    lazyfighter
        1
    lazyfighter  
       2019-05-31 11:36:40 +08:00
    common?
    yukiww233
        2
    yukiww233  
       2019-05-31 11:37:52 +08:00
    exclude module:''
    behanga
        3
    behanga  
       2019-05-31 14:44:10 +08:00
    jar 包全换 aar,gradle 里面写 lib 依赖的时候,自动解决
    vanxy
        4
    vanxy  
       2019-05-31 16:57:27 +08:00
    用包管理来解决: 把每个 jar 导出为单独的 module, 然后其他 module 再依赖这个 jar 的 module
    silkgrower
        5
    silkgrower  
    OP
       2019-05-31 19:08:29 +08:00 via Android
    @vanxy 空的 module 吗?
    shaobin0604
        6
    shaobin0604  
       2019-05-31 20:42:59 +08:00
    jar 包发布到 maven 仓库,统一用远程 maven 依赖
    coolqi
        7
    coolqi  
       2019-07-10 10:36:47 +08:00
    @behanga @lazyfighter @shaobin0604 @silkgrower @vanxy @yukiww233
    可以请教下:一个 jar/aar 不是应该只会在存在一份在 app 中吗?

    “ app 下有 1,2,3 三个 jar 包; Amodule 下引入了 3,4,5 三个 jar 包; Bmodule 引入了 4,5,6 三个 jar 包。如何去掉重复的 3,4,5 ”

    1、按理说,虽然主 module 和 child module 都引用了同一个 jar,但是 app 中应该只会存在一份 不是吗?
    2、如果 jar 或者 aar 可以在 module 中重复,原理是什么呢? gradle 在编译的时候是如何实现重复的 jar/aar 能都被打包进 apk 呢》
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5859 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:23 · PVG 10:23 · LAX 18:23 · JFK 21:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.