Před časem jsem zde psal o Apache ANT a Yui Compressoru. Přišel jsem na rychlejší a elegantnější způsob, jak minifikovat javascript a CSS soubory. Vše je možné zařídit prostřednictvím Ant makra:
<!-- Minifi css/js with YUI compressor -->
<macrodef name="Minify" description="Minifi css/js with YUI compressor">
<attribute name="file" />
<attribute name="args" default="--charset utf-8 -o '@{file}'"/>
<sequential>
<java jar="omPress/tools/yuicompressor.jar" fork="true" failonerror="true" maxmemory="128m">
<arg line="'@{file}' @{args}" />
</java>
</sequential>
</macrodef>
Předdefinované makro, stačí vložit do vašeho Apache Ant projektu a zavolat v libovolném targetu. Jako vstupní parametr vyžaduje makro pouze jméno souboru.
<target name="js.build"> <Minify file="js/main.js" /> </target>
Pokud makro zavoláte bez nepovinného parametru args, dojde k přepsání originálního souboru minifikovanou verzí (viz hodnota default). Tohle chování je možné samozřejmě snadno změnit:
<target name="js.build"> <Minify file="js/main.js" args="--charset utf-8 -o 'js/main.min.js'" /> </target>
YUI Compressor zvládne minifikovat také CSS soubory – stačí zavolat:
<target name="css.build"> <Minify file="css/main.css" /> </target>