Selon le SO message suivant, compile
est devenu implementation
récemment: Quelle est la différence entre implémentation et compilation progressive
Ma question est: que devrais-je utiliser au lieu de compileOnly
? Le message ci-dessus ne traite pas de cette configuration. Je sais que je peux toujours utiliser compileOnly
mais quelle est la configuration recommandée qui ne sera pas obsolète bientôt?
Il semblait que toutes les configurations contenant ..compile..
seraient remplacées par ..implementation..
. J'ai essayé implementationOnly
mais je n'ai pas été accepté par Android Studio.
compileOnly
est le remplacement - la configuration équivalente qui est obsolète est provided
. Voir la documentation .
Vos dépendances de projet doivent être changées dedependencies { provided 'com.someDependency:api:78'}
todependencies { compileOnly 'com.someDependency:api:78'}
Dans certains cas, lorsque vous acceptez la suggestion automatique de IDE d’ajouter un projet à votre fichier Gradle, il ajoute "compile project (path: 'xxx')". Corrigez-le et tout ira bien.
Plugin Android pour Gradle 3.0.0
before - Configuration obsolète - provided
après - Nouvelle configuration - compileOnly
Gradle ajoute la dépendance uniquement au chemin de classe de compilation (il n'est pas ajouté à la sortie de la construction). Ceci est utile lorsque vous créez un module de bibliothèque Android et que vous avez besoin de la dépendance lors de la compilation, mais il est facultatif de l'avoir au moment de l'exécution. En d’autres termes, si vous utilisez cette configuration, votre module de bibliothèque doit inclure une condition d’exécution permettant de vérifier si la dépendance est disponible, puis modifier son comportement pour qu’elle puisse toujours fonctionner si elle n’est pas fournie. Cela permet de réduire la taille du fichier APK final en n’ajoutant pas de dépendances transitoires qui ne sont pas critiques. Cette configuration se comporte comme prévu (qui est maintenant obsolète).