Si je comprends bien, vous confondez le Project.dependencies
bloc de script avec le Project.buildscript.dependencies
bloc de script (tout comme je l'ai fait lorsque j'ai atteint cette question).
Je vais essayer de répondre avec ce que j'ai trouvé.
Je pense que vous devriez déjà être familier avec le Project.dependencies
bloc de script. Dans ce bloc, nous déclarons les dépendances requises par notre code source. Il existe plusieurs façons de déclarer une dépendance dont nous avons besoin pour le projet. Voir Didacticiel Gradle: types de dépendances . Je ne mentionnerai que la partie la plus pertinente à ce problème:
compile 'org.hibernate:hibernate-core:5.0.5.Final'
est une déclaration de dépendance de module. La configuration de compilation (qui est maintenant obsolète par la configuration de l'implémentation.) Est simplement un mot-clé pour Implementation only dependencies.
Ce n'est pas un mot-clé décrivant de quel type de dépendance il s'agit (par type ici, je suis les trois types définis dans le tutoriel, à savoir le module, fichier et projet.)
Dans le didacticiel Gradle: organiser la logique de construction, il est dit:
Si votre script de construction doit utiliser des bibliothèques externes, vous pouvez les ajouter au chemin de classe du script dans le script de construction lui-même. Pour ce faire, utilisez la méthode buildscript (), en passant une fermeture qui déclare le chemin de classe du script de construction.
C'est de la même manière que vous déclarez, par exemple, le chemin de classe de compilation Java. Vous pouvez utiliser l'un des types de dépendance décrits dans Types de dépendance, à l'exception des dépendances de projet.
Après avoir déclaré le chemin de classe du script de construction, vous pouvez utiliser les classes dans votre script de construction comme vous le feriez pour toute autre classe sur le chemin de classe.
J'espère que les choses deviennent claires pour vous maintenant.
Avec classpath "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
nous définissons la classpath
méthode avec com.android.tools.build:gradle:${Versions.android_gradle_plugin}
laquelle une dépendance de module est utilisée par le script de construction lui-même plutôt que par la source de votre projet.
D'un autre côté, compile 'org.hibernate:hibernate-core:5.0.5.Final'
nous déclarons une dépendance de module requise pour votre projet avec la configuration de compilation .
tl; dr: Le classpath
, compile
et implementation
sont tous les mots clés qui peuvent être utilisés contre les dépendances dans des circonstances différentes. Le premier est utilisé lorsque vous souhaitez transmettre une dépendance au script de construction, et le second est l'une des configurations que vous voudrez peut-être déclarer.
classpath
n'est pas une étendue de dépendance valide.