当前位置:  开发笔记 > Android > 正文

为什么Android Studio项目中有两个build.gradle文件?

如何解决《为什么AndroidStudio项目中有两个build.gradle文件?》经验,为你挑选了2个好方法。

将Eclipse项目导入Android Studio后,我看到两个build.gradle文件:

1 - \build.gradle
2 - \app\build.gradle

第一个版本更短,第二个版本包含定义compileSdkVersion等.

有两个单独的文件背后的目的是什么?是否有单独的构建任务?



1> Gabriele Mar..:

\app\build.gradle特定于app模块.

\build.gradle是一个"顶级构建文件",您可以在其中添加所有子项目/模块共有的配置选项.

如果您在项目中使用另一个模块,作为本地库,您将拥有另一个build.gradle文件: \module\build.gradle

对于例如在顶层文件,您可以指定这些共同的属性:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
}

ext {
    compileSdkVersion = 23
    buildToolsVersion = "23.0.1"
}

在你的 app\build.gradle

apply plugin: 'com.android.application'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
}


使用ext {...}进行绕行是否很重要或者我们应该直接将android插件和compileSdkVersion应用到顶级构建文件中吗?

2> SMR..:

从官方文档:

Android Studio项目包含一个顶级项目Gradle构建文件,允许您添加项目中所有应用程序模块共有的配置选项.每个应用程序模块还有自己的build.gradle文件,用于特定于该模块的构建设置.

在此输入图像描述

项目构建文件

\build.gradle或者项目构建文件用于整个项目,因此它将用于全局项目配置.典型的项目构建文件包含以下内容:

buildscript定义:

存储库和

依赖

Gradle插件版本

默认情况下,项目级Gradle文件使用buildscript来定义Gradle 存储库依赖项.这允许不同的项目使用不同的Gradle版本.支持的存储库包括JCenter,Maven Central或Ivy.此示例声明构建脚本使用JCenter存储库和包含Gradle版本1.0.1的Android插件的类路径依赖项工件.


模块构建文件

\app\build.gradle或者模块构建文件用于特定模块,因此它将用于特定的模块级配置.一个模块构建文件包含以下内容:

android设置

compileSdkVersion

buildToolsVersion

defaultConfig和productFlavors

显示属性,例如applicationId,minSdkVersion,targetSdkVersion和测试信息

buildTypes

构建属性,例如debuggable,ProGuard启用,调试签名,版本名称后缀和测试信息

依赖

你可以在这里阅读官方文档:

项目和模块构建设置

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有