web-dev-qa-db-fra.com

Différence entre les configurations de compilation et d'exécution dans Gradle

Ma question est un peu commune, mais elle est également liée à Gradle.

Pourquoi avons-nous besoin d'une compilation et d'une configuration d'exécution?

Lorsque je compile quelque chose, j'ai besoin d'artefacts pour convertir mes classes Java en bytecode, donc j'ai besoin d'une configuration de compilation, mais pourquoi une configuration d'exécution est-elle nécessaire, ai-je besoin de quelque chose d'autre pour exécuter mon application dans la JVM?

Désolé si cela semble stupide, mais je ne comprends pas.

94
Xelian

Dans le cas le plus courant, les artefacts nécessaires à la compilation sont un sous-ensemble de ceux nécessaires à l'exécution. Par exemple, supposons qu'un programme appelé app utilise la bibliothèque foo et la bibliothèque fooen interne utilise la bibliothèque bar. Alors seulement foo est nécessaire pour compiler app, mais foo et bar sont nécessaires pour l'exécuter. C'est pourquoi, par défaut, tout ce que vous mettez dans la configuration compile de Gradle est également visible dans sa configuration runtime, mais l'inverse n'est pas vrai.

136