Android Studio的project中两个build.gradle配置的区别

classpath的作用:
buildscript itself needs something to run, use classpath
complie的作用:
your project needs something to run, use compile
在Project中的gradle的dependencies 指添加依赖是使用classpath的,classpath一般
是添加buildscript本身需要运行的东西,
那么buildscript是用来什么呢?buildScript是用来加载gradle脚本自身需要使用的资源,
可以声明的资源包括依赖项、第三方插件、maven仓库地址等。 在app中的gradle中dependencies 中添加的使应用程序所需要的依赖包,也就是项目运行所需要的东西。
 
build.gradle(项目:我的应用程序)
顶级构建文件,你可以在其中添加所有子项目/模块通用的配置选项。
每个项目都包含一个顶级 Gradle 文件。它通常包含所有modules. 无论这个顶级 Gradle gile 中包含什么,
它都会影响所有模块
例子:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
        //Maven plugin
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}
build.gradle(模块:应用程序)
特定模块的构建文件(在其中添加依赖项、签名配置、构建类型、风味等)
所有模块都有一个特定的 Gradle 文件。无论这个gradle文件中包含什么,它只会影响包含的模块
例子:
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.hrskrs.gesturefun"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            zipAlignEnabled true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
            zipAlignEnabled true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
} } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':gesture-fun') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.jakewharton:butterknife:7.0.1' }

Gradle 还包括两个属性文件,位于项目根目录,可用于指定适用于 Gradle 构建工具包本身的设置:

gradle.properties
您可以在其中配置项目范围 Gradle 设置,例如 Gradle 后台进程的最大堆大小。如需了解详细信息,请参阅构建环境

local.properties
为构建系统配置本地环境属性,例如 SDK 安装路径。由于该文件的内容由 Android Studio 自动生成并且专用于本地开发者环境,因此您不应手动修改该文件,或将其纳入您的版本控制系统。

Gradle 在执行的时候大概进行了如下几步操作:

1 初始化构建
2 配置构建
3 执行构建
4 完成构建或者失败




 
posted @ 2023-08-09 15:09  herry507  阅读(166)  评论(0编辑  收藏  举报