Android Studio - 为所有模块添加依赖项

时间:2015-09-13 09:17:21

标签: android android-studio gradle dependencies build.gradle

我已阅读大量帖子,例如this one,但他们只是告诉您不应该将依赖项添加到项目根build.gradle,我知道。 我的情况是:我有很多模块都需要相同的库。所有这些,所以我需要将它们全部配置为具有相同的库。是否有可能以某种方式将其添加到根build.gradle或者我已将依赖项添加到每个项目build.gradle

3 个答案:

答案 0 :(得分:14)

你可以这样做。
这并不意味着为所有模块添加依赖项,但通过这种方式,您可以集中依赖项。

在顶级build.gradle

    ext {
        //Version
        supportLibrary = '23.0.1'

        //Support Libraries dependencies
        supportDependencies = [
                appCompat     : "com.android.support:appcompat-v7:${supportLibrary}",
                design        : "com.android.support:design:${supportLibrary}",
        ]
    }

在每个模块中添加build.gradle

dependencies {
    //......
    compile supportDependencies.appCompat
    compile supportDependencies.design
}

通过这种方式,当您必须更新库时,您只需更改顶级文件。

答案 1 :(得分:2)

我知道这个问题有点老了,但是我开始使用它,如果您不关心将什么库注入模块中,我认为这会更干净。

build.gradle

ext {
    commonDependencies = [
            // Layout Libraries
            constraintLayoutApi     : "androidx.constraintlayout:constraintlayout:$constraintlayout_version",
            materialApi             : "com.google.android.material:material:$material_version",
            flexboxApi              : "com.google.android:flexbox:$flexbox_version",

            // Image library (Picasso is alternative)
            glideImpl               : "com.github.bumptech.glide:glide:$glide_version",
            glideCompilerAnno       : "com.github.bumptech.glide:compiler:$glide_version",

            // Network library (Volley is alternative)
            retrofitImpl            : "com.squareup.retrofit2:retrofit:$retrofit_version",
            retrofitJacksonImpl     : "com.squareup.retrofit2:converter-jackson:$retrofit_version",
            retrofitScalarsImpl     : "com.squareup.retrofit2:converter-scalars:$retrofit_version",
            retrofitJava8Impl       : "com.squareup.retrofit2:converter-java8:$retrofit_version",

            // Dependency Injection
            daggerImpl              : "com.google.dagger:dagger:$dagger_version",
            daggerCompilerAnno      : "com.google.dagger:dagger-compiler:$dagger_version",
            // we add this so we can use the android support libraries
            daggerAndroidSupportImpl: "com.google.dagger:dagger-android-support:$dagger_version",
            daggerProcessorAnno     : "com.google.dagger:dagger-android-processor:$dagger_version"
    ]
}

以及在应用build.gradle中:

dependencies {
    api "androidx.appcompat:appcompat:$app_compact_version"
    api "com.google.android.gms:play-services-auth:$play_service_version"

    commonDependencies.each { key, value ->
        if (key.endsWith('Anno')) {
            annotationProcessor value
        } else if (key.endsWith('Impl')) {
            implementation value
        } else if (key.endsWith('Api')) {
            api value
        }
    }
}

您可以看到,我正在通过根gradle文件中密钥的后缀来检查API,实现和注释。

答案 2 :(得分:0)

  1. 首先,您必须在Android Studio中添加图表库项目(模块)(您当前的工作区) 档案 - >导入模块
  2. 要在构建路径中添加库项目(模块),请单击 档案 - >项目结构
  3. 在左侧单击 app - >依赖选项卡 - >绿色+按钮 - >模块依赖 现在选择您已添加的库项目。 有关详细信息,请参阅此link