web-dev-qa-db-fra.com

Pourquoi y a-t-il deux fichiers build.gradle dans un projet Android Studio?

Après avoir importé un projet Eclipse dans Android Studio, je vois deux build.gradle des dossiers:

1 - <PROJECT_ROOT>\build.gradle
2 - <PROJECT_ROOT>\app\build.gradle

La première version est plus courte, la deuxième version contient les définitions de compileSdkVersion, etc.

Quel est le but de deux fichiers distincts? Existe-t-il des tâches de construction distinctes?

95
Sabuncu

<PROJECT_ROOT>\app\build.gradle est spécifique à module d'application.

<PROJECT_ROOT>\build.gradle est un "fichier de construction de niveau supérieur" où vous pouvez ajouter des options de configuration communes à tous les sous-projets/modules.

Si vous utilisez un autre module dans votre projet, en tant que bibliothèque locale, vous aurez un autre build.gradle fichier: <PROJECT_ROOT>\module\build.gradle

Pour exemple dans votre fichier de niveau supérieur, vous pouvez spécifier ces propriétés communes:

buildscript {
    repositories {
        mavenCentral()
    }

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

ext {
    compileSdkVersion = 23
    buildToolsVersion = "23.0.1"
}

Dans votre app\build.gradle

apply plugin: 'com.Android.application'

repositories {
    mavenCentral()
}

Android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
}
65
Gabriele Mariotti

De la documentation officielle:

Les projets Android Studio contiennent un fichier de construction Gradle de projet de niveau supérieur qui vous permet d'ajouter les options de configuration communes à tous les modules d'application du projet. Chaque module d'application possède également son propre build.gradle fichier pour les paramètres de construction spécifiques à ce module.

enter image description here

Fichier de construction du projet

<PROJECT_ROOT>\build.gradle ou le fichier de construction du projet est destiné au projet entier , de sorte sera utilisé pour les configurations de projet globales. Un fichier de construction de projet typique contient les éléments suivants:

  • buildscript qui définit:
    • les dépôts et
    • les dépendances
  • Version du plugin Gradle

Par défaut, le fichier Gradle au niveau du projet utilise un script de construction pour définir les dépendances Gradle et . Cela permet à différents projets d'utiliser différentes versions de Gradle. Les référentiels pris en charge incluent JCenter, Maven Central ou Ivy. Cet exemple déclare que le script de construction utilise le référentiel JCenter et un artefact de dépendance de chemin d'accès aux classes contenant le plug-in Android de Gradle version 1.0.1.


Fichier de construction du module

<PROJECT_ROOT>\app\build.gradle ou le fichier de construction du module est destiné à un module spécifique sera utilisé pour des configs de niveau de module spécifiques. Un fichier de construction de module contient les éléments suivants:

  • Paramètres Android
    • compileSdkVersion
    • buildToolsVersion
  • defaultConfig et productFlavors
    • propriétés du manifeste telles que applicationId, minSdkVersion, targetSdkVersion et des informations de test
  • buildTypes
    • construire des propriétés telles que débogage, activation de ProGuard, signature de débogage, suffixe de nom de version et informations de test
  • les dépendances

vous pouvez lire la documentation officielle ici:

Paramètres de construction de projets et de modules

15
SMR