13 votes

Pourquoi dois-je spécifier à la fois 'runtime' et 'compile' pour la même dépendance?

Je dépends de quelques artefacts dont j'ai besoin à la fois pour compiler et exécuter mon application.

Selon la documentation de Gradle, la configuration runtime étend la configuration de compilation, donc ajouter une dépendance en utilisant runtime implique sûrement une dépendance implicite en compile ?

C'était du moins mon hypothèse, mais ça ne fonctionne pas. Quand je dépends seulement de l'artefact en utilisant runtime, mon projet ne compile plus. Je dois littéralement :

compile 'oauth.signpost:signpost-core:1.2.1.2'
runtime 'oauth.signpost:signpost-core:1.2.1.2'

pour que l'application puisse à la fois compiler et voir les classes de Signpost à l'exécution.

Est-ce que j'ai raté quelque chose ? Ça ne semble juste pas correct...

21voto

Nikita Skvortsov Points 1514

Presque juste. La configuration d'exécution, en effet, étend la configuration de compilation (docs). Cela signifie que toute dépendance ajoutée à la configuration compile est disponible dans la configuration runtime (docs).

compile 'oauth.signpost:signpost-core:1.2.1.2' sera suffisant pour obtenir cet artefact à la fois en runtime et en compilation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X