2010-05-19 18 views
8

Actualmente estamos trabajando en una aplicación con un número relativamente grande de dependencias externas, ya que nos estamos integrando con un sistema existente bastante complejo.Acelerando la resolución de dependencia de Grails

Las dependencias están funcionando bien, sin embargo, aún se necesitan varios minutos para resolver las dependencias independientemente de si las dependencias ya están en la caché de Ivy o no. Si la memoria caché necesita actualización, demora aún más, por supuesto.

¿Hay alguna manera de acelerar este proceso o deshabilitar la resolución de dependencia en cada ejecución? Esto se está convirtiendo en un gran drenaje de productividad.

Gracias!

Respuesta

2

tal vez es un poco difícil, pero me gustaría hacer la siguiente

  1. utilizar el elemento entorno de DSL de configuración para agregar resolución dependecy sólo en la producción e prueba de ver [aquí] [1]
  2. poner todos su jarra de depenecia en la biblioteca de su aplicación de Grails lo haría con la dependencia de maven: copiar. Creo que se podría hacer en la hiedra demasiado
  3. Añadir el archivo jar a su lista de ignorar-SCM
  4. Utilice un sistema de CI de construcción para comprobar dependecy resolución se hace bien

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

0

No creo que haya una buena forma de evitar el tiempo que se tarda en resolver la dependencia; según tengo entendido, fue una decisión de diseño específica en Grails hacer la resolución de la dependencia en el momento del inicio para que la aplicación no tenga que establecer dependencias durante el tiempo de ejecución.

Podrías solucionar esto en modo dev al menos simplemente dejando tu aplicación Grails ejecutándose e implementando en caliente los cambios; si estás utilizando una de las versiones recientes de Grails con el servidor Tomcat integrado, esto funciona muy bien.

+0

Grails está lleno de usted-sabe-qué (sí, estoy enojado). ¡Es extremadamente lento hacer * cualquier comando *! El despliegue activo no funciona para ningún cambio de objeto de dominio o cambio de servicio (aunque funciona bien para los controladores). ¡No estoy seguro por qué! Acabo de comenzar un proyecto que usa griales y, aunque me gustan muchas de las funciones que ofrece Groovy + Grails, ¡es demasiado lento! La configuración equivalente de maven/jetty/hibernate/spring/hsql/plain java se inicia en menos de 10 segundos. ¡El código es igual de fácil de escribir usando anotaciones, IMO! – les2

1

intente utilizar el interruptor --offline. esto evitará repositorios remotos y solo buscará en el sistema de archivos (es decir, repositorio local maven). solo necesita volver a conectarse cuando se agregan nuevas dependencias.

Cuestiones relacionadas