2011-12-04 9 views
8

Estoy intentando crear dos agregaciones CSS: una para el sitio público y otra para la parte de la aplicación del sitio.El complemento del compresor Maven yui no puede crear una agregación dada una ruta más larga?

Si hago el archivo de salida ${project.build.directory}/${project.build.finalName}/css/public-all.css, todo funciona.

[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public-all.css 
[INFO] public-all.css (32029b) 
[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application-all.css 
[INFO] application-all.css (50446b) 

Pero si trato y la salida del archivo agregado a otro subdirectorio, como ${project.build.directory}/${project.build.finalName}/css/public/all.css, da el siguiente error:

[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\public\all.css 
[WARNING] all.css not created 
[INFO] generate aggregation : C:\Users\me\IdeaProjects\myapp-development\target\myapp-1.0\css\application\all.css 
[WARNING] all.css not created 

¿Por qué se crearon no conseguir? ¿Por qué es esto incluso una advertencia y no una falla correcta del complemento?

Aquí está la parte pom.xml donde estoy especificando las agregaciones. ¿Por qué diablos no funciona?

    <aggregation> 
         <removeIncluded>false</removeIncluded> 
         <insertNewLine>true</insertNewLine> 
         <output>${project.build.directory}/${project.build.finalName}/css/public/all.css</output> 
         <includes> 
          <include>**/public/base.css</include> 
          <include>**/fancybox/jquery.fancybox-1.3.4.css</include> 
         </includes> 
        </aggregation> 
        <aggregation> 
         <removeIncluded>false</removeIncluded> 
         <insertNewLine>true</insertNewLine> 
         <output>${project.build.directory}/${project.build.finalName}/css/application/all.css</output> 
         <includes> 
          <include>**/application/reset.css</include> 
          <include>**/application/text.css</include> 
          <include>**/application/960.css</include> 
          <include>**/smoothness/jquery-ui-1.8.11.custom.css</include> 
          <include>**/application/base.css</include> 
          <include>**/jcrop/jquery.jcrop.css</include> 
          <include>**/farbtastic/farbtastic.css</include> 
         </includes> 
        </aggregation> 

Revisé y estos directorios existen también. Si intento señalar un directorio que no existe, el yuicompressor:compress fallará. Simplemente no entiendo por qué el proceso de compilación realmente tiene éxito con directorios válidos, pero no crea los archivos en esos directorios. ¡No tiene sentido!

Pensé que tal vez era un problema de seguridad del sistema de archivos, pero eso tampoco lo es.

Estoy realmente desconcertado de por qué esto no funciona.

Por favor ayuda.

+0

Ayuda a alguien? Todavía no puedo entender por qué esto no funciona. No sé por qué agregar un subdirectorio bajo '/ css /' como 'css/application' o' css/public' haría que fallara :(¿Por qué solo tiene éxito si agrego a 'css' solamente? Esto tiene para ser un error. – egervari

Respuesta

12

Estaba teniendo un problema similar y lo resolví configurando inputDir para que apunte al directorio raíz de mi estructura js. De forma predeterminada, el complemento toma como base el directorio padre de su archivo de salida e incluye se comportará como relativo a él (si no rutas absolutas).

<inputDir>src/main/js</inputDir> 
<includes> 
    <include>**/*.js</include> 
</includes> 
<output>${webapp.root.dir}/js/${project.artifactId}-${project.version}.js</output> 

Espero que esto ayude :)

+0

¡Justo lo que necesitaba! Muchas gracias. – evandongen

+0

¡Hombre impresionante! Estuve jugando con los caminos durante un buen rato en vano, hasta que vi esta publicación. – asgs

Cuestiones relacionadas