64 votes

Grails BuildConfig.groovy, différence entre build, compile et runtime?

J'essaie de comprendre le fichier BuildConfig.groovy dans Grails 1.3.7.

 grails.project.dependency.resolution = {

    plugins {
        build "acme:acme-cache:latest.integration"
    }

    dependencies {
        build "com.foo.bar:foobar:1.0.5"       
        runtime "org.apache.httpcomponents:httpclient:4.0.3"
        compile("com.thoughtworks.xstream:xstream:1.3.1")
    }
}
 

Je comprends que les plugins Grails sont listés dans la section plugins {}. Je suppose que les bibliothèques (ZIP, JAR, etc.) sont répertoriées dans la section des dépendances.

Quel est l'objectif de build , runtime , et compile , et quand utiliseriez-vous l'un sur l'autre?

103voto

Dónal Points 61837
  • build - dépendance requise seulement par le processus de construction
  • runtime - dépendance qui est nécessaire pour exécuter l'application, mais pas compiler par exemple JDBC pour la mise en œuvre spécifique de la base de données du fournisseur. Ce ne sont en général pas nécessaires au moment de la compilation, car le code ne dépend que de l'API JDBC, plutôt que d'une mise en œuvre spécifique de celui-ci
  • compile - dépendance qui sont nécessaires à la fois au moment de la compilation et de l'exécution. C'est le cas le plus fréquent

Il ya un couple de d'autres dépendances étendues:

  • test - dépendance qui est nécessaire uniquement par les épreuves, par exemple, un moqueur/bibliothèque de test
  • provided - dépendance qui est nécessaire au moment de la compilation, mais ne doivent pas être emballés avec l'application (généralement parce qu'il est fourni par le conteneur). Un exemple est la Servlet API

5voto

John Troxel Points 26

Il semble que les 2 réponses précédentes entrent en conflit sur la distinction entre compiler et construire. Je crois que la construction est la portée qui inclut grails compile et grails run-app , tandis que compiler n'est que l'ancienne.

1voto

doelleri Points 5205

Un couple graal commandes permettent d'illustrer la différence. Envisager grails run-app et grails compile. grails compile est l'étape de compilation et comprendra au moment de la compilation des dépendances. grails run-app run est l'étape et comprendra les dépendances d'exécution. Construire les dépendances sont quelque chose que vous pourriez avoir besoin pour exécuter l'une de ces commandes, par exemple, un script personnalisé qui s'intègre à certains événements construire.

Donc vous devez choisir celui qui convient le mieux quand vous en avez besoin pour être certain que la dépendance est inclus.

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