Quelle est la différence entre build
, runtime
et compile
, dans BuildConfig.groovy
(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")
}
}
build
- dépendance nécessaire uniquement au processus de générationruntime
- dépendance nécessaire pour exécuter l'application, mais pas pour la compiler, par exemple Implémentation JDBC pour un fournisseur de base de données spécifique. Cela ne serait généralement pas nécessaire au moment de la compilation car le code dépend uniquement de l'API JDBC, plutôt que d'une implémentation spécifique de celle-cicompile
- dépendance nécessaire à la fois à la compilation et à l'exécution. C'est le cas le plus courantIl existe quelques autres étendues de dépendance:
test
- dépendance qui n'est nécessaire que pour les tests, par ex. une bibliothèque de simulation/testprovided
- dépendance nécessaire au moment de la compilation mais qui ne doit pas être fournie avec l'application (généralement parce qu'elle est fournie par le conteneur). Un exemple est l'API ServletIl semble que les 2 réponses précédentes soient en conflit sur la distinction entre compiler et compiler. Je crois que la construction est la portée qui comprend grails compile
et grails run-app
, tandis que la compilation n'est que la première.
Depuis Grails 3, les dépendances sont gérées par Gradle. Le grails-app/conf/BuildConfig.groovy
fichier a été remplacé par le build.gradle
fichier à la racine du projet.
Le guide de l'utilisateur Grails expliquez comment définir les dépendances Grails avec gradle et se réfère à documentation Gradle connexe pour plus de détails sur ce sujet.
Quelques commandes Grails aident à illustrer la différence. Considérer grails run-app
et grails compile
. grails compile
est l'étape de compilation et inclura les dépendances au moment de la compilation. grails run-app
est l'étape d'exécution et inclura les dépendances d'exécution. Les dépendances de génération sont tout ce dont vous pourriez avoir besoin pour exécuter l'une de ces commandes, par exemple, un script personnalisé qui se connecte à certains événements de génération.
Vous choisiriez donc celui qui convient le mieux lorsque vous devez être certain que la dépendance est incluse.