2011-05-16 5 views
5

Je voudrais utiliser @Grape dans mon programme groovy mais mon programme se compose de plusieurs fichiers. Les exemples sur le Groovy Grape page semblent tous supposer que votre script consistera en un fichier. Comment puis-je faire ceci? Devrais-je simplement l'ajouter à l'un des dossiers et m'attendre à ce que les importations fonctionnent à partir des autres? Si oui, alors est-il courant de placer tous les appels @Grape dans un fichier sans autre code? Dois-je ajouter l'appel Grape à tous les fichiers qui vont importer le paquet? Ai-je besoin de télécharger le fichier JAR et de créer un fichier Gradle, dont je me séparais à ce stade?@Rapide dans les scripts avec plusieurs fichiers

Répondre

4

Le moteur de raisin et l'annotation @grab ont été créés dans le but de créer des scripts de fichiers uniques, afin de permettre à un morceau de texte de devenir un programme entièrement fonctionnel.

Pour les applications plus volumineuses, gradle est un outil de construction génial avec beaucoup de fonctionnalités utiles.

mais oui, vous pouvez gérer toutes les dépendances d'applications avec raisin.
que vous annotiez chaque fichier ou un seul n'a pas d'importance, assurez-vous simplement que le fichier annoté @grab est lu avant d'essayer d'utiliser la classe externe.
l'annotation de la classe principale est probablement préférable car vous perdrez facilement la trace des versions de la bibliothèque si les annotations sont dispersées.

et oui, vous devez envisager gradle pour toute application avec plus d'une douzaine de fichiers ou tout ce que vous pourriez vouloir réutiliser ailleurs comme une bibliothèque.

1

À mon avis, cela dépend comment votre programme doit être exécuté ...

Si votre programme doit être exécuté comme une collection de scripts autonomes, alors je serais probablement coller les @Grab requis pour chaque script au sommet de chacun d'eux. Si votre programme est plus un standard programme de style avec un seul point d'entrée, alors je vais utiliser un outil de construction comme Gradle (comme vous le dites), car vous obtenez beaucoup de victoires faciles de En l'utilisant.

Tout d'abord, il est facile de définir vos dépendances (et build a single large jar contenant tous)

En second lieu, Gradle rend vraiment facile de commencer à écrire des tests, inclure les plugins de couverture de code, ou des outils utiles like codenarc pour suggérer possible correctifs ou améliorations de votre code. Tous ces éléments sont précieux non seulement pour améliorer votre code (ou pour savoir que votre code fonctionne), mais aussi pour refactoriser votre code, vous savez que vous n'avez rien cassé.

+0

La question portait sur ce que je dois faire, et non sur ce qui est approprié. Je pense que ces deux options fonctionneront mais sont-elles les seules options? Puis-je mettre l'appel @Grape au même endroit sans utiliser Gradle? – dromodel

Questions connexes