将Eclipse项目导入Android Studio后,我看到两个build.gradle
文件:
1 - <PROJECT_ROOT>\build.gradle
2 - <PROJECT_ROOT>\app\build.gradle
第一个版本较短,第二个版本包含compileSdkVersion
等的定义
拥有两个单独文件的目的是什么?是否有单独的构建任务?
答案 0 :(得分:63)
<PROJECT_ROOT>\app\build.gradle
特定于 app模块。
<PROJECT_ROOT>\build.gradle
是“顶级构建文件”,您可以在其中添加所有子项目/模块通用的配置选项。
如果您在项目中使用另一个模块,作为本地库,您将拥有另一个build.gradle
文件:
<PROJECT_ROOT>\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
}
答案 1 :(得分:15)
来自官方文件:
Android Studio项目包含一个顶级项目Gradle构建文件,该文件允许您添加项目中所有应用程序模块通用的配置选项。每个应用程序模块还有自己的
build.gradle
文件,用于特定于该模块的构建设置。
<PROJECT_ROOT>\build.gradle
或项目构建文件适用于整个项目,因此它将用于全局项目配置。
典型的项目构建文件包含以下内容:
默认情况下,项目级Gradle文件使用 buildscript 来定义Gradle 存储库和依赖项。这允许不同的项目使用不同的Gradle版本。支持的存储库包括JCenter,Maven Central或Ivy。此示例声明构建脚本使用JCenter存储库和包含Gradle版本1.0.1的Android插件的类路径依赖项工件。
<PROJECT_ROOT>\app\build.gradle
或模块构建文件适用于特定模块,因此它将用于特定的模块级配置。
模块构建文件包含以下内容:
- android设置
- compileSdkVersion
- buildToolsVersion
- defaultConfig和productFlavors
- 清单属性,例如applicationId,minSdkVersion,targetSdkVersion和测试信息
- buildTypes
- 构建属性,例如debuggable,ProGuard启用,调试签名,版本名称后缀和测试信息
- 依赖关系
你可以在这里阅读官方文档: