2010-09-10 11 views
10

Java Q: Me gusta CSS para páginas web simples, pero lo aborrezco cuando se trata de sitios del mundo real porque obtienes css explosion y muchas repeticiones.bibliotecas de Java para gestionar la explosión y/o reutilización de CSS

Tengo la tentación de usar Sass y/o Compass pero son programas de Ruby que muy probablemente requieran un poco de interés de Maven + JRuby para trabajar en el desarrollo de la aplicación web de Java. Esto también dificulta el uso de Eclipse o cualquier IDE que admita la sincronización con una aplicación web en ejecución.

¿Hay una mejor alternativa para el infierno que es CSS en el infierno que es Java?

Respuesta

5

Bajé por la misma carretera recientemente usando LessCss, una tecnología similar. Al principio traté de incrustar JRuby en mi ciclo de vida de compilación. Pero desafortunadamente Maven + JRuby es un monstruo, es lento, enorme y con errores (la mitad de las veces ni siquiera empezaría porque se quejaría sobre la ruta de archivo en la que se estaba ejecutando).

Afortunadamente, ahora hay un puerto JavaScript de LessCss, que ahora incrusto a través de Mozilla Rhino. I describe the process in this blog post.

Ayer, sin embargo, lo llevé al siguiente nivel, creando un complemento Maven LessCss para minimizar la configuración de POM y la duplicación de código. Desafortunadamente no puedo compartirlo porque es un código propietario para mi cliente actual, pero la solución es simple:

Use GMaven to create the Plugin, crea un resumen base mojo que llama al compilador LessCss y varias implementaciones concretas que configuran el mojo base para diferentes recursos conjuntos:

por ejemplo

  • lesscss:compile
    compila de todo <resources> a ${project.build.outputDirectory}
  • lesscss:test-compile
    compila a partir todo <testResources> a ${project.build.testOutputDirectory}
  • lesscss:war-compile
    (compila a partir todo src/main/webapp a ${project.build.directory}/${project.build.finalName} , la guerra explotó directorio)

Así que aunque no te puedo ayudar con SASS (aparte de usted pidiendo a la autenticación o portarlo a Groovy, Java o JavaScript), creo que te he mostrado una alternativa factible.

Por supuesto, también puede implementar un Plugin de Maven en Java sin Groovy (también incrustando el JavaScript a través de Rhino), pero creo que es más fácil en Groovy.

+0

Publicación interesante +1 –

+0

En mi camino al trabajo antes de leer su respuesta, estaba pensando en escribir un generador Groovy para CSS y/o micro DSL similar a SASS con un servlet filter o servlet para servir el CSS (es decir, qué JSP/GSP es para HTML pero para CSS). ¡Buena publicación! –

+1

@ Adam: Como escribí en mi publicación del blog, ya existe algo similar para Less y Wicket: http://www.richardnichols.net/2010/06/less-css-in-wicket-using-mozilla-rhino/ . Por cierto, si alguna vez escribes Groovy Builder, publícalo aquí también. –

0

La interfaz de línea de comandos de Sass es muy completa. Si llama al sass --update en sus reglas de compilación, puede usar el ejecutable estándar de Sass (ya sea a través de Ruby o JRuby) sin tener que integrarlo directamente en su compilación.

+0

Independientemente de si es una llamada externa o una interna (JRuby) aún está integrada con la compilación. Aún tengo que instalar JRuby o Ruby en la máquina de compilación y en cada máquina de desarrollo. –

+0

Eso es cierto (por supuesto, lo mismo es cierto para Rhino + Less). Tenemos la intención de lanzar un paquete todo en uno Sass + Ruby en algún momento en el futuro, lo que esperamos que lo haga más fácil de administrar. –

+0

no, no es cierto para rhino + less, ya que puedo descargar todos los componentes requeridos a través de la resolución de dependencia maven, por lo tanto, hacer la compilación reproducible en cualquier lugar. con jruby siendo prácticamente inutilizable desde maven y ruby ​​que no se ejecuta en java vm no existe realmente una opción para automatizar sass en una construcción maven. Eso no es nada en contra de Sass, es una tecnología genial, pero la integración maven/ruby ​​apesta. No es tu culpa, tampoco la mía, y no hay razón para rechazar mi respuesta. –

1

Una buena solución para usar sass con eclipse se responde en la pregunta this.

3

Terminé usando wro4j.

Recomendamos encarecidamente la biblioteca, ya que manejará muchas cosas, como menos CSS y café CoffeeScript.

+0

¿Es wro4j solución java pura? Parece usar less.js? Tengo en intranet alto aislamiento de la red pública, algunas computadoras están totalmente aisladas. –

Cuestiones relacionadas