2012-03-30 7 views
2

Kann ich Maven YUI Compressor für die Komprimierung von Dateien nach der Aggregation einrichten, weil ich "Quellen" Verzeichnis, die Dateien für die Aggregation enthalten und dann komprimierte Dateien komprimieren möchten.Maven YUI Compressor: Komprimieren nach Aggregation

Zum Beispiel habe ich einige Js-Dateien innerhalb von /js/Quellen/mylib/ und all diese Dateien zusammengefasst in einer Datei /js/mylib.js während yui-Kompressor Aggregationsstufe. In pom.xml konfiguriere ich yui-compressor um ganze /js/sources/ auszuschließen und komprimiere Dateien nur innerhalb von /js library, aber yui-compressor führt "compress" Ziel vor der Aggregation aus, so dass ich unkomprimierte zusammengeführte Dateien habe. Und ich muss das irgendwie beheben

+0

Haben Sie am Ende eine Lösung dafür gefunden @SquAreRoot? – Patrick

Antwort

1

Können wir es umdrehen und sagen: Aggregate nach der Komprimierung? Wenn ja, hatte ich das gleiche Problem und mit dem folgenden hat es für mich geklappt.

Der Trick schien zu sein, die Ausgabedatei in das Zielverzeichnis anstatt in die Quelle zu setzen. Auf diese Weise können Sie Dateien einschließen, die in der Aggregation minimiert wurden.

Dateien, die bereits minimiert wurden, gehe ich dann durch die basedir var.

<executions> 
    <execution> 
     <goals> 
     <goal>compress</goal> 
     </goals> 
    </execution> 
    </executions>   
    <configuration> 
    <excludes> 
     <exclude>**/*-min.js</exclude> 
     <exclude>**/*.min.js</exclude> 
     <exclude>**/*.css</exclude> 
    </excludes> 
    <removeIncluded>false</removeIncluded> 
    <jswarn>false</jswarn> 
    <aggregations> 
     <aggregation> 
      <insertNewLine>true</insertNewLine> 
      <removeIncluded>false</removeIncluded> 
      <includes> 
       <!-- these exist only in target dir. the original was json2.js & bootstrap.tabs.js --> 
       <include>**/bootstrap-tabs-min.js</include> 
       <include>**/json2-min.js</include> 
       <!-- use originals for the ones already minified --> 
       <include>${basedir}/src/main/webapp/js/backbone-min.js</include> 
      </includes> 
      <output>${project.build.directory}/${project.build.finalName}/js/test.js</output> 
     </aggregation> 
    </aggregations> 
    </configuration> 
+0

Nun, in diesem Fall habe ich keine originalen nicht-limitierten Dateien, aber ich möchte diese Dateien zusätzlich für die Benutzergruppe "Entwickler" minimieren, nur um die Problemlösung in der Produktion zu vereinfachen. Aber, naja, ich denke, ich kann nur unmonifizierte Dateien nach Aufgabe in Maven von der Quelle root – SquAreRoot

+0

Ich denke false wird sicherstellen, dass die Originale gehalten werden. BTW, ich überprüfe gerade dieses Plugin, da ich andere seltsame Probleme mit dem oben genannten habe: http://maven-samaxes-plugin.googlecode.com/svn/sites/maven-minify-plugin/minify-mojo. html – demiurg

Verwandte Themen