Comme vu dans Android Studio 3.0 (canary 3.0), nous ajoutons maintenant depedencies
en déclarant implementation
au lieu de la configuration compile
.
// Before
compile 'com.Android.support:appcompat-v7:25.3.1'
// Currently
implementation 'com.Android.support:appcompat-v7:25.3.1'
Nous pouvons toujours utiliser compile
, mais je voudrais comprendre:
implementation
et compile
?implementation
par défaut?Il semble que compile
soit obsolète et que api
ou implementation
devrait être utilisé à la place. Selon Le Java Plugin de bibliothèque - Guide de l'utilisateur Gradle version 3.5 :
La configuration
compile
existe toujours mais ne doit pas être utilisée car elle n'offre pas les garanties que fournissent les configurationsapi
etimplementation
.
Grâce au lien vraiment utile de @petter, je voudrais ajouter un résumé comme suit.
Cela signifie que Android Gradle build
commence à utiliser le Java-library
plugin au lieu de son précédent Java
plugin. Ce plugin présente le exposed API
concept avec deux configuration
pour déclarer les dépendances.
doit être utilisé pour déclarer les dépendances qui sont exportées par l'API de la bibliothèque
Par exemple, dans le cas où vous créez une bibliothèque Java (ou Android) qui est utilisée par d'autres applications. Si vous utilisez une bibliothèque tierce et que vous souhaitez exposer son API à votre consommateur de bibliothèque aussi, vous devez déclarer comme ceci.
api 'commons-httpclient:commons-httpclient:3.1'
doit être utilisé pour déclarer des dépendances internes au composant.
Lors du développement de Android, notre module app
est le point final qui n'a pas besoin d'exposer une partie en externe. implementation
doit être utilisé.
implementation 'org.Apache.commons:commons-lang3:3.5'
La configuration précédente compile
fonctionne de la même manière que api
. Le implementation
apporte cependant les avantages suivants.