YUI Compressor permite, en primer lugar, comprobar la corrección del código javascript mediante JSLint. En segundo lugar, permite comprimir y ofuscar los archivos javascript, de forma que se reduce su peso y se dificulta la introducción de ataques a través del código javascript.
Todo ello, a través de la siguiente configuración del pom.xml:
<pluginRepositories>
<pluginRepository>
<name>oss.sonatype.org</name>
<id>oss.sonatype.org</id>
<url>http://oss.sonatype.org/content/groups/public</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compress</goal>
<goal>jslint</goal>
</goals>
</execution>
</executions>
<configuration>
<jswarn>true</jswarn>
<failOnWarning>false</failOnWarning>
<nomunge>false</nomunge>
<excludes>
<exclude>**/jquery.js</exclude>
</excludes>
<aggregations>
<aggregation>
<includes>
<include>**/*-min.js</include>
</includes>
<output>${project.build.directory}/${project.artifactId}-
${project.version}/js/revistero.js</output>
</aggregation>
<aggregation>
<includes>
<include>**/*-min.css</include>
</includes>
<output>${project.build.directory}/${project.artifactId}-
${project.version}/css/revistero.css</output>
</aggregation>
</aggregations>
</configuration>
</plugin>
…
<build>
La configuración de los atributos jswarn y failonwarning hace que se realice la comprobación de los archivos javascript pero sin parar la ejecución en caso de error. El atributo nomunge indica que se debe ofuscar el archivo ("munge": Modify Until Not Guessed Easily).
Tanto la verificación como la compresión de los archivos se ejecutarán cada vez que se construya el proyecto mediante:
mvn package
O se despliegue con:
mvn jetty:run-war
Pero se pueden ejecutar de forma independiente. Para lanzar la compresión de los archivos javascript y css se ejecutará:
mvn net.alchim31.maven:yuicompressor-maven-plugin:compress
Y para realizar la verificación de los archivos javascript:
mvn net.alchim31.maven:yuicompressor-maven-plugin:jslint
Referencias:
YUI Compressor Maven Mojo
Minimizando el tiempo de carga: Maven YUI Compressor
Maven es la caña. Y cada día aumenta el número de MOJO's para hacerlo aún más completo y versátil. Una maravilla.
ResponderEliminarSaludos Jorge!.