Android Gradle 在另一个模块中包含模块依赖项

标签 android dependencies android-gradle-plugin

我正在使用最新的 Android Studio 3.0.0-beta6 构建我的 Android 项目,但存在这个依赖性问题。 Gradle 鼓励我将所有 compile 的 替换为 implementation 的 。这是我的项目结构:

项目:

  • 模块 1

    • 模块2

Module1依赖一些库,module2依赖module1。但是,模块 1 中的库在模块 2 中不可见。我不想复制粘贴依赖项,而宁愿只声明一次库依赖项。有一个简单的解决方案吗?谢谢。

module1 的构建 gradle:

dependencies {
    ....
    implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
    ...
}

module2 的构建 gradle:

implementation project(':module1')

最佳答案

在你的根项目中 -> build.gradle 你应该有这样的东西:

allprojects {
    repositories {
        jcenter()
    }
}

在那里添加依赖!!

更新

如果您不希望所有模块都具有公共(public)依赖关系,而只希望特定模块具有公共(public)依赖关系,那么请执行以下操作:

  1. 在您的根项目/gradleScript 中创建一个文件夹
  2. 在此文件夹中创建一个 .gradle 文件(例如 gradleScript/dependencies.gradle) 看起来像:

    ext {
    
    //Version
    
    supportLibrary = '22.2.1'
    
    //Support Libraries dependencies
    supportDependencies = [
            design           :         "com.android.support:design:${supportLibrary}",
            recyclerView     :         "com.android.support:recyclerview-v7:${supportLibrary}",
            cardView         :         "com.android.support:cardview-v7:${supportLibrary}",
            appCompat        :         "com.android.support:appcompat-v7:${supportLibrary}",
            supportAnnotation:         "com.android.support:support-annotations:${supportLibrary}",
    ]
    }
    
  3. 在您的根项目 build.gradle 中添加此行:

    buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
    }
    
    // Load dependencies
    apply from: 'gradleScript/dependencies.gradle'
    
  4. 在您的模块中相应地添加:

    // Module build file
    
    dependencies {
        //......
        compile supportDependencies.appCompat
        compile supportDependencies.design
    }
    

希望这有帮助!!!

关于Android Gradle 在另一个模块中包含模块依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526414/

相关文章:

android - 如何在android构建类型中设置不同的版本号?

android - 如何在 Android Jetpack Compose 中制作圆底导航

android - 如何从 .c(C 文件)为 Arm 处理器创建 .so(共享对象库文件)?

ruby-on-rails - 我是否必须手动卸载所有依赖的 gem?

java - Maven 自定义依赖类型

android - 使用变量时如何在 build.gradle 中查看依赖项更新?

java - HashMap - 正确用法?

android - 使用 GSON 解析 URL

c# - C# 中两个单元测试之间的依赖关系

android-studio - Android Studio Gradle 构建错误 : "Reference must start with ' @': "