“最简单的Android项目有以下build.gradle”

时间:2014-10-27 20:30:39

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

我正在尝试学习gradle构建系统,因为它似乎是高度可配置的,并且在Android Studio中使用。我想要始终确保我理解我正在阅读的内容,但这似乎并不匹配。

user guide for the new build system表示最简单的Android项目具有以下build.gradle。

buildscript {
    repositories {
        mavenCentral()
    }

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

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"
}

当我在Android Studio中创建一个新项目时,我得到了更多的内容:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.example.eghdk.project"
        minSdkVersion 15
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

现在我意识到事情正在以极快的速度移动gradle,android的gradle插件,构建工具和Android Studio,文档在某些方面会过时。我只是想确保apply plugin: 'android'现在已经过时了,为什么dependencies{...}根本没有提到构建工具。只是试图将我的头围绕在gradle周围,并希望找到一些帮助找到"最简单的Android项目有以下build.gradle"。

2 个答案:

答案 0 :(得分:1)

  

我只想确保apply plugin: 'android'现已过时

是。该插件现在称为com.android.application用于应用程序,com.android.library用于库。

  

[...]以及为什么依赖关系并没有提到构建工具

实际上它确实如此。您发布的第二个build.gradle是Android Studio将为应用程序(或" app")模块生成的内容。如果您转到项目的根目录,则会在您的所有项目模块中使用另一个build.gradle。您可以在此处找到repositories {}块和依赖项块classpath 'com.android.tools.build:gradle:X.Y.Z'

至于为什么生成的文件要长得多 - 您正在使用"最简单的" build.gradle真正显示出最低限度。您不需要 来执行生成的build.gradle中提供的许多内容,例如配置构建类型。但是,Android Studio模板旨在提供基本的Gradle构建脚本,该脚本为大多数Android开发人员希望在其构建脚本中更新的许多内容提供理智的默认值。

您不需要全部使用它(并且您可以删除您不想要的部分),但它的存在是为开发人员提供了解决问题的基础。

我建议忽略"最简单的build.gradle"文档(并且不要去寻找另一个)。相反,开始查看一些示例Gradle构建脚本,并开始尝试了解它们的工作方式以及它们的工作方式。专注于你不理解的单个剧本的小部分;如果你发现整个剧本压倒一切,不要试图立刻接受整个事情。

答案 1 :(得分:0)

Android Studio为多模块gradle项目生成一个结构(只有一个模块)。上层目录中有 build.gradlesettings.gradle

可以在 main build.gradle文件中找到buildscript定义。

apply plugin: 'android'已被删除,由apply plugin: 'com.android.application'

取代

buildTypes默认配置为proguard(混淆器)非默认配置。 (这是可选的)

dependencies部分表示你可以将任何jar文件放在libs目录中(就像你用eclipse做的那样)。如果libs目录中没有任何jar:你也可以安全地删除这个部分。

如果您未指定:minSdkVersion为1