J'ai un grand nombre de modules gradle que j'utilise pour construire mes applications et bibliothèques Android. Mon application est décomposée en plusieurs bibliothèques Java C++ &. Chaque module peut être une bibliothèque Java ou un projet APK. Pour chaque module représentant un fichier APK, j'ai un build.gradle
qui spécifie diverses sections productFlavors
qui contrôlent la façon de les construire. Exemple:Comment spécifier les propriétés de dégradé communes dans le script racine gradle.build
flavorDimensions "mode"
productFlavors {
arm {
dimension "mode"
externalNativeBuild {
ndk { abiFilters "armeabi-v7a" }
}
}
x86 {
dimension "mode"
externalNativeBuild {
ndk { abiFilters "x86" }
}
}
full {
dimension "mode"
externalNativeBuild {
ndk { abiFilters "x86", "armeabi-v7a" }
}
}
}
Ce que je suis en train d'éviter est de dupliquer la configuration ci-dessus dans chaque feuille build.gradle
qui représente une sortie APK. Comment est-ce que je peux stocker les saveurs de produit au niveau de racine et d'une manière ou d'une autre avoir ces transitifs aux dossiers de congé de build.gradle
donc je n'ai pas besoin de les reproduire?
Lorsque vous appliquez le 'plugin d'application', comment gradle sait-il que le contenu de 'ConfigurationPlugin' doit être placé sous 'android {...}'? –
Lorsque le plugin est appliqué (dans la méthode 'apply()'), nous obtenons la configuration 'android {}', qui est une classe 'LibraryExtension' pour les bibliothèques Android. That ['LibraryExtension'] (https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.LibraryExtension.html) a toutes les propriétés de la fermeture' android {} '. –
Puis-je aussi structurer ceci pour que mon code groovy ne soit pas à la racine? Par exemple, je voudrais le stocker dans un module frère (également avec son code java) et l'utiliser depuis n'importe quel autre module. Je ne peux pas obtenir la commande apply plugin pour le trouver. N'a-t-il pas besoin d'être 'apply plugin: 'com.example.ConfigurationPlugin''? –