J'essaie d'ajouter une dépendance de Android client HTTP asynchrone à mon projet. Il existe donc deux fichiers build.gradle dans le projet.
Selon ma compréhension, il existe différents types de dépendances:
Cette question concerne les dépôts pour les dépendances du buildScript, expliquez un peu les deux premiers types.
Build.gradle (Projet: My-app) dit aussi
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Je suppose donc que le code de dépendance de Android Un client HTTP asynchrone devrait être ajouté à build.gradle (module: app).
Si quelqu'un pouvait donner une image claire de toutes ces choses pour une meilleure compréhension, ce serait formidable.
build.gradle(Project:My-app)
Fichier de construction de niveau supérieur dans lequel vous pouvez ajouter des options de configuration communes à tous les sous-projets/modules.
Chaque projet contient un top-level gradle file
. Il contient habituellement common configs
Pour tout modules
. Tout ce qui est inclus dans ce top-level gradle
, Cela affectera tous les modules
.
ex:
// 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(Module:app)
Fichier de construction de votre module spécifique (où vous ajoutez vos dépendances, les configurations de signature, les types de construction, les saveurs, etc.)
Tous les modules
ont un fichier gradle
spécifique Quel que soit ce qui est inclus dans ce fichier gradle
, cela n’affectera que le module
inclus dans.
ex:
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'
}
C'est un peu déroutant car Android Studio montre par défaut les deux build.gradle
fichiers côte à côte (lors de l’utilisation de la vue Android)).
Si vous passez en vue Projet, vous pouvez voir la structure actuelle et où se trouvent les différents build.gradle
les fichiers sont situés.
Le build.gradle
Le fichier (Projet: MonApplication) se trouve dans le dossier racine du projet et ses paramètres de configuration s’appliquent à tous les modules du projet. Un module est un élément isolé du plus grand projet. Dans un projet multi-module, ces modules ont leurs propres tâches mais travaillent ensemble pour former l'ensemble du projet. La plupart des projets Android ont un seul module, le module app.
Le build.gradle
Le fichier (module: app) se trouve dans le dossier app
. Ses paramètres de construction s'appliquent uniquement au module d'application. S'il y avait un autre module, alors ce module aurait son propre build.gradle
fichier, aussi. En tant que exemple , j'ai créé un projet de bibliothèque avec trois modules: un module de bibliothèque, un module d'application de démonstration et un autre module d'application que je prévois d'utiliser pour les tests. Chacun d'entre eux a son propre build.gradle
fichiers que je peux modifier.
Dans un projet de base, presque tout ce que vous devez modifier sera dans le build.gradle
fichier. Vous pouvez vous en souvenir comme ça:
Vous faites un app, alors allez au
build.gradle
_ (Module: app) fichier
À propos de la relation entre les deux fichiers gradle
, hrskrs a donné une explication très claire Je vais en faire un complément.
si votre projet ne comporte qu'un seul module (tel que app), l'avantage de top build.gradle (Projet: My-app) n'est pas très clair. parce que vous pouvez tout configurer dans build.gradle (Module: app) à propos du module, et ne modifier qu'un fichier lors de la mise à niveau dans les jours suivants
mais si votre projet comporte 5 modules, et qu’ils ont la même dépendance, A , si vous n’utilisez pas top build.gradle ( Projet: My-app) vous devez conserver 5 fichiers les jours suivants.
en passant, le build.gradle (module: app) peut remplacer le build.gradle (projet: mon-application).
Cette conception peut améliorer la maintenabilité de l’APP