Mise à jour de la réponse en fonction des dernières versions de gradle.
Extrait de la documentation officielle de gradle au lien ci-dessous :
https://docs.gradle.org/current/userguide/upgrading_version_5.html
Dépréciations
Les dépendances ne doivent plus être déclarées en utilisant les configurations de compilation et d'exécution L'utilisation des configurations de compilation et d'exécution dans les plugins de l'écosystème Java a été découragée depuis Gradle 3.4.
Les configurations implementation, api, compileOnly et runtimeOnly doivent être utilisées pour déclarer les dépendances et les chemins d'accès compileClasspath et runtimeOnly. runtimeClasspath pour résoudre les dépendances.
De plus, la configuration de la dépendance de compilation a été supprimée dans la version 7.0 de Gradle récemment publiée.
Si vous essayez d'utiliser compile dans votre projet Gradle 3.4+, vous obtiendrez un avertissement comme celui-ci :
Des fonctionnalités obsolètes de Gradle ont été utilisées dans cette version, ce qui la rend incompatible avec Gradle 7.0. Utiliser '-warning-mode all' pour afficher les les avertissements de dépréciation individuels.
Vous devez toujours utiliser implementation plutôt que compile pour les dépendances, et utiliser runtimeOnly au lieu de runtime.
Qu'est-ce qu'une dépendance de mise en œuvre ?
Lorsque vous construisez et exécutez un projet Java, deux classpaths sont impliqués :
Compiler le chemin de classe - Les dépendances qui sont nécessaires pour que le JDK puisse compiler le code Java dans des fichiers .class.
Chemin de classe de l'exécution - Les dépendances qui sont nécessaires pour exécuter le code Java compilé.
Lorsque nous configurons les dépendances de Gradle, nous ne faisons que configurer quelles dépendances doivent apparaître sur quel classpath. Étant donné qu'il n'y a que deux classpaths, il est logique que nous ayons trois options pour déclarer nos dépendances.
-
compileOnly - mettre la dépendance sur le classpath de la compilation uniquement.
-
runtimeOnly - placer la dépendance sur le classpath du runtime uniquement.
-
mise en œuvre - mettre la dépendance sur les deux classpaths.
Utilisez la configuration de la dépendance d'implémentation si vous avez besoin que la dépendance soit à la fois sur les classpaths de compilation et d'exécution. Dans le cas contraire considérez compileOnly ou runtimeOnly.