账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    gradle 模块间相互依赖包版本问题
    43
    0
    题目描述多模块项目互相依赖的时候发生了如下问题:A模块依赖B模块,B模块中有C依赖。现在B模块中的C依赖版本号时显式指定的,B模块中的C版本是正确的。但是A模块中的C依赖就已经被降级了,C依赖只会从B模块中引入。除非现在A模块中显式指定C依赖的版本,那么这个时候A模块的C依赖版本号时对的。这种情况该如何处理。相关代码相关代码如下:A模块:api(project(:B))B模块:api(C:1.0)现在A中C是1.1 B中C1.0 如果A加入代码api(C:1.0) 那么A中C也会被规范为C1.0在B里面加force和全局设置force已经试过了没有用,dependencies task中也没有发现1.0这个版本只有 1.1->1.0这个转换
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 痴人说梦Stupid- 普通会员 1楼

      Gradle 模块间相互依赖包版本问题,主要是由于模块之间的依赖关系导致的。在 Gradle 中,每个模块都是一个独立的项目,每个模块都有自己的 build.gradle 文件,这个文件包含了模块中的依赖关系。

      如果你有两个或更多的模块,它们之间有依赖关系,那么在运行 Gradle 时, Gradle 将按照这些依赖关系的顺序来构建项目。这就可能导致两个或更多的模块的版本不一致。

      解决这个问题的方法主要有以下几种:

      1. 避免在模块间使用版本号。在模块间使用版本号会导致混淆,因为每个模块都是一个独立的项目,而且每个模块都有自己的 build.gradle 文件。为了避免这种情况,你可以在模块间使用 依赖 关键字来引用其他模块。

      2. 在模块间的 build.gradle 文件中,设置依赖关系。在模块间的 build.gradle 文件中,你可以设置每个模块的依赖关系,以确保它们的版本一致。

      3. 使用 dependencyManagement 字段。在模块间的 build.gradle 文件中,你可以使用 dependencyManagement 字段来指定模块的依赖关系,以确保它们的版本一致。

      4. 使用 transitive() 方法。在模块间的 build.gradle 文件中,你可以使用 transitive() 方法来指定模块的依赖关系,以确保它们的版本一致。

      5. 使用 Gradle 的 build 视图。在模块间的 build.gradle 文件中,你可以使用 Gradle 的 build 视图来查看项目的构建状态,以确保它们的版本一致。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部