2010-05-19 8 views
8

Nous travaillons actuellement sur une application avec un nombre relativement élevé de dépendances externes, car nous intégrons un système existant assez complexe. Les dépendances fonctionnent très bien, cependant, il faut encore plusieurs minutes pour résoudre les dépendances, que les dépendances soient ou non déjà dans le cache Ivy. Si le cache a besoin d'être mis à jour, cela prend encore plus de temps.Speeding Up Grails Résolution Résolution

Est-il possible d'accélérer ce processus ou de désactiver la résolution des dépendances à chaque exécution? Cela devient maintenant un énorme drain de productivité.

Merci!

Répondre

2

Peut-être qu'il est un peu difficile, mais je faire ce qui suit

  1. Utilisez l'élément enviroment de dsl config pour ajouter la résolution dependecy que dans le test e production, voir [ici] [1]
  2. Mettez tous votre pot de depenecy dans le forlder de lib de votre application de grails je le ferais avec la dépendance de maven: copie. Je pense que cela pourrait se faire dans le lierre trop
  3. Ajoutez le fichier jar à votre scm-ignore-liste
  4. Utilisez un système de construction de CI pour vérifier dependecy résolution est bien fait

    [1]: http://www.grails.org/doc/1.3.x/guide/3.%20Configuration.html#3.2 environnements

0

Je ne pense pas qu'il existe un bon moyen de contourner le temps nécessaire pour effectuer une résolution de dépendance; si je comprends bien, il s'agissait d'une décision de conception spécifique dans Grails de faire la résolution des dépendances au moment du démarrage afin que l'application ne doit pas tirer dans les dépendances pendant l'exécution. Vous pouvez contourner ce problème en mode dev au moins en laissant votre application Grails en cours d'exécution et en déployant à chaud toutes les modifications - si vous utilisez l'une des versions récentes de Grails avec le serveur Tomcat intégré, cela fonctionne très bien.

+0

Grails est plein de vous-savez-quoi (oui, je suis en colère). Il est extrêmement lent de faire * toute commande *! Le déploiement à chaud ne fonctionne pas pour les modifications d'objet de domaine ou de service (bien que cela fonctionne correctement pour les contrôleurs). Pas certain de pourquoi! Je viens de commencer un projet qui utilise des grails et bien que j'aime beaucoup les fonctionnalités groovy + grails, c'est trop lent! La configuration équivalente de maven/jetty/hibernate/spring/hsql/plaine java démarre en moins de 10 secondes! Le code est tout aussi facile à écrire en utilisant des annotations, IMO! – les2

1

essayez d'utiliser le commutateur --offline. cela évitera les dépôts distants et ne recherchera que le système de fichiers (c'est-à-dire, le repo maven local). il suffit de revenir en ligne lorsque de nouvelles dépendances sont ajoutées.