Quelle différence entre compile et implementation dans Gradle ?

Quelle différence entre compile et implementation dans Gradle ? La principale différence entres les deux notions se situe au niveau de la gestion des dépendances. le point.

Les directives "compile" et "implementation" sont les deux systèmes de configuration utilisés pour construire son application Android avec Gradle. La principale différence se situe au niveau de la gestion des dépendances. Les avantages apportés par "implementation" sont tellement importants qu'elle est finalement devenue la seule configuration possible.

La principale différence entre "compile" et "implementation" se situe au niveau de la gestion des dépendances. Si votre application dépend de dépendances ou de librairies qui ont elles-mêmes des dépendances, la totalité des dépendances sera visible si vous utilisez la configuration "compile". Avec la configuration "implementation", seules les dépendances directes sont visibles. Les dépendances des librairies ne seront pas exposées. Cela apporte davantage de sécurité pour les développements de librairies ou d'applications complexes avec plusieurs niveaux de dépendances.

D'autres avantages sont apportés par cette modification. La compilation est plus rapide car la taille du "classpath" est réduite. Si une dépendance d'une librairie est modifiée, il n'y a pas besoin de recompiler l'application. Les fichiers POM générés par Maven sont également plus clairs, ils séparent les composants nécessaires pour construire l'application de ceux demandés par les librairies.

Tous ces avantages ont décidé les développeurs de Gradle à rendre obsolète la configuration "compile". À partir de la version 3.0, l'utilisation de la configuration "implementation" est obligatoire. Les termes suivants doivent être modifiés dans les fichiers "build.gradle" de votre application :

  • "implementation" doit remplacer le terme "compile".
  • "testImplementation" doit remplacer le terme "testCompile".
  • "debugImplementation" doit remplacer le terme "debugCompile".
  • "androidTestImplementation" doit remplacer le terme "androidTestCompile".
  • Seul le terme "compileOnly" subsiste. Il remplace le terme "provided".

Si vous ne le faites pas, vous obtiendrez le message d'erreur suivant lors du lancement de l'application : "Configuration 'compile' is obsolete and has been replaced with 'implementation'".

Java