Un saludo a todos y todas,
Soy el autor de una librería para java-SP llamada Jawr y recientemente
publiqué un plugin para usarla con Grails. Toda la informacion se
puede encontrar en
http://grails.codehaus.org/jawr+plugin y
https://jawr.dev.java.net.
Jawr es una librería Open Source que tiene dos utilidades para el
desarrollo de aplicaciones web Java en las que se usa mucho
javascript:
1. Por un lado es una herramienta de productividad, ya que nos
permite desarrollar todo el javascript en módulos independientes, en
lugar de juntar todo en uno o dos archivos. El hecho de trabajar con
módulos independientes nos hace la vida más fácil tanto a la hora de
desarrollar y mantener como para el control de versiones.
2. Por otro lado, es una herramienta de rendiemiento que acelera la
carga de las páginas de nuestra aplicación, ya que en producción todos
los módulos que se han desarrollado por separado se unen en uno solo
(o en varios, según configuremos), se minifican y se comprimen. Así se
reducen tanto el número de peticiones HTTP necesarias para cargar el
código, como el tamaño en Kb del mismo.
Jawr se configura añadiendo propiedades en el archivo
Config.properties para especificar el modo de empaquetar los
componentes (por cierto que también une y minifica CSS). Con una tag
library referenciamos en las GSP a colecciones de componentes por un
nombre lógico que configuramos en Config.properties.
Estas tags, en modo desarrollo, crearan enlaces a los módulos sueltos,
sin comprimir, que podemos depurar por ejemplo con el Firebug. En
producción, sin cambiar más que un flag de configuración, las tags
crean enlaces a la versión unificada y comprimida.
Otras posibilidades interesantes son la integración con Facelets (si
teneis algun proyecto con JSF en vez de Grails), se puede definir
postprocesadores custom en java que modificarán el javascript o el CSS
en producción, se pueden definir paquetes que se importan por defecto
en todas las páginas, paquetes que se incluyen dentro de un
conditional comment de internet explorer, etc...
Jawr tiene una licencia Apache 2.0. Por debajo se puede configurar
para que comprima el javascript usando JSMin o YUI Compressor (ambos
con licencia BSD). Por cierto que usando YUI Compressor también
podemos ofuscar el javascript.
Espero que os sea de utilidad.
(e perdonenme os que falam portugues, eu non se falaro)
Jordi Hernandez Selles