Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Handshake zwischen Yui Compressor und Maven

Yui Compressor

Der YUI Compressor ist ein Projekt aus dem Hause Yahoo. Ziel des Projekt ist die Minimierung der Größe von Javascript – sowie CSS Dateien. Dazu wer­den kom­plexe Algorithmen ver­wen­det, die dafür Sorge tra­gen, dass die Funktionalität des Quellcodes erhal­ten bleibt und trotz­dem die Bytegröße der Dateien erheb­lich ver­klei­nert wird. Die tri­vi­als­ten Beispiele dafür wären das Entfernen von Kommentarzeilen sowie von Zeilenumbrüchen.

Die Minimierung der Dateigrößen resul­tiert in einer spür­ba­ren Verbesserung der Performance für den Benutzer bei der Nutzung einer Webanwendung, da das vom Server zum Client über­tra­gende Datenvolumen erheb­lich klei­ner ist. Zu erwäh­nen ist noch, dass durch diverse Cache-Strategien des Browsers die­ser Effekt nach dem ein­ma­li­gen Download der Ressourcen dras­tisch redu­ziert wird. Die Entwickler von Yahoo haben aller­dings sta­ti­sche Werte für die Nutzung ihrer eige­nen Yahoo Homepage erho­ben, die auf­zei­gen, dass jeder fünfte Nutzer mit einem geleer­ten Cache ihre Seite besucht. (Referenz: http://yuiblog.com/blog/2007/01/04/performance-research-part‑2/)

Die Dokumentation, Release Notes sowie die Software steht auf der Yahoo Developer Homepage zur Verfügung.

YUI Compressor Maven Mojo

Das Projekt YUI Compressor Maven Mojo ermög­licht es den YUI Compressor auf rela­tiv ein­fa­che Weise in ein Maven Projekt zu inte­grie­ren. Des Weiteren erlaubt es Dateien zu Aggregationen zusam­men­zu­fas­sen, damit nicht nur die Größe von CSS – und Javascript Dateien gesenkt wer­den kann, son­dern auch die Anzahl der Requests, die nötig sind um eine Webseite zu laden. Zusätzlich stellt es ein Goal zur Verfügung, mit dem Javascript Dateien per jslint auf deren Qualität hin anhand vor­de­fi­nier­ter Merkmale aus­ge­wer­tet wer­den können.

Damit das Maven Projekt, um diese neue Funktionalität erwei­tert wer­den kann, muss ein zusätz­li­ches Plugin Tag in die pom.xml ein­ge­tra­gen werden.

<plugins>
 ...
 <plugin>
  <groupId>net.sf.alchim</groupId>
  <artifactId>yuicompressor-maven-plugin</artifactId>
  <executions>
   <execution>
    <goals>
     <goal>compress</goal>
     <!--<goal>jslint</goal>-->
    </goals>
   </execution>
  </executions>       
 </plugin>
 ...
</plugins>

Des Weiteren kann zusätz­lich ein con­fi­gua­tion Tag hin­zu­ge­fügt wer­den, indem unter­schied­lichste Konfigurationen vor­ge­nom­men wer­den können.

Beispielsweise ist es mög­lich genau fest­zu­le­gen, wel­che Javascript – oder CSS Dateien mini­fied (inclu­des) bzw. nicht mini­fied (exclu­des) wer­den sol­len. Wildcards wie Sternchen bzw. Doppelsternchen kön­nen dabei pro­blem­los ver­wen­det wer­den. Außerdem kön­nen Aggregationen (aggre­ga­ti­ons) defi­niert wer­den, die meh­rere Dateien zu einer ein­zi­gen zusam­men­füh­ren. Quasi on the top wird die gzip Funktionalität, mit der Dateien gepackt wer­den kön­nen, zu Verfügung gestellt.

Die genaue Definitionen der Tags sowie die Vielfalt der Funktionen kann über die YUI Compressor Maven Mojo Homepage ein­ge­se­hen werden.

7. Januar 2010

Pin It on Pinterest