android - Android Gradle依赖关系

标签 android android-studio gradle android-gradle-plugin

如何基于某些配置文件动态添加gradle依赖项
告诉android studio将哪些库添加到项目中

提前致谢

最佳答案

如果我对您的理解正确,那么您将需要:

  • build.gradle包含“标准”配置,在所有团队中通用并共享
  • 一些特殊的配置(但对于同一项目),每个团队的配置可能不同。

    而且您要避免,您必须一直 checkout 或注释一些依赖项,因为最后一次 checkin 来自团队B,而团队A需要一些其他依赖项(或相同依赖项的不同版本)。

    我到目前为止正确吗?

    可以使用gradle中的新标记apply-from来完成此操作。
    或多或少,这是include命令,它允许您将单独文件的内容导入当前的build.gradle配置中。

    我在我的项目中使用它来包含签名配置(对于我的所有应用程序仅存在一次,并且仅“包含”在构建中,并且不会一遍又一遍地复制)。
    对于某些标准依赖项(例如支持库,浓缩咖啡和类似东西)也是如此。
    这使build.gradle文件较小。

    从我的构建文件中看这个示例,我认为您可以对其进行调整以供使用:
    apply plugin: 'com.android.application'
    apply from: '../../stdcfg/app/default.build.gradle'
    apply from: '../../stdcfg/app/include.libs.gradle'
    apply from: '../../stdcfg/app/signingconfig.gradle'
    
    android {
        // ... normal contents of your build file
    }
    
    apply-from包含此build.gradle文件中的任何文件。作为示例,这是我的default.build.gradle文件的(部分)内容,您会看到,它甚至可以添加依赖项:
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
    
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
        {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        testCompile 'junit:junit:4.12'
    
        compile 'com.android.support:cardview-v7:25.2.0'
        compile 'com.android.support:appcompat-v7:25.2.0'
        compile 'com.android.support:design:25.2.0'
        compile 'com.android.support:support-v4:25.2.0'
        //  compile 'com.google.android.gms:play-services-ads:10.2.0'
        //  compile 'com.google.android.gms:play-services-gcm:10.2.0'
    }
    

    那么,您如何适应使用呢?

    假设A团队和B团队各自获得一个特定文件,我们将文件命名为teamconfig.gradle
    在团队A的分支中,该文件包含团队A的配置,在团队B的分支B中。
    两个团队都为其应用程序使用相同的build.gradle文件,其中包含以下行:
    apply from: '../branches/teamconfig/teamconfig.gradle'
    

    该文件包含特定于团队的配置。

    希望这可以帮助。

  • 关于android - Android Gradle依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42900847/

    相关文章:

    android - 如何在 Android Studio 2.3 中启用注解处理器

    java - 错误构建 APK {重复条目 : com/google/android/gms/gcm/INetworkTaskCallback$Stub. 类}

    android - 尝试使用Jacoco获得测试覆盖率时出现OutOfMemoryError

    android - Android Studio,NavDrawer和支持库问题

    java - Android Firebase - 为什么 map 字段中的空值被忽略

    android - 在不使用蜂窝塔的情况下在两部智能手机之间进行通信 - 点对点

    java - 从应用程序自动发送电子邮件

    java - 如何在非 ICS android 设备上拥有 android ICS 组件

    java - 如何在android应用程序中截取状态栏内容的屏幕截图?

    Android studio 离线安装