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?
<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
}
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.
<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:
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.
<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: