Štítek Apache Ant ×

Android Apache Ant Chrome CSS Data Databáze Desocializace Download ESRI Facebook Flash GIS Google Google Maps GPS Hardware HTML Internet iOS iPhone Jak na to Javascript jQuery JS mac mapa Maps Mapy Mashup Mobile MySQL Nezařazeno PHP Programování Silverlight Software Studentská tvorba Test Video Všechno možné Webdesign Weblbinky Windows Wordpress Zajímavosti

26. 4. 2012

Ultimátní detekce OS v Apache ANT

ANT dokáže rozpoznat relativně snadno nad jakým OS byl právě spuštěn. Tahle vlastnost se Vám bude hodit zejména tehdy, pokud budete nuceni spouštět příkazy závisle na platformě.

Při detekci OS jsem narazil na drobný problém se správným rozpoznáním Mac OS X a Linux (oba jsou na UNIX jádru) – to se vyřešilo složitější podmínkou. V závěru ANT skriptu najdete také příklad použití.

<project name="osDetect">
 <!-- Mac OS X based -->
 <condition property="isMac">
  <os family="mac"/>
 </condition>

 <!-- Mac OS but not OS X -->
 <condition property="isMacButNotMacOsX">
  <and>
   <os family="mac"/>
   <not>
    <os family="unix"/>
   </not>
  </and>
 </condition>

 <!-- UNIX based system (unix, max os x) -->
 <condition property="isUnix">
  <os family="unix"/>
 </condition>

 <!-- Linux BASED system -->
 <condition property="isLinux">
  <and>
   <os family="unix"/>
   <not>
    <os family="mac"/>
   </not>
  </and>
 </condition>

 <target name="-linux.run" if="isLinux">
  <echo> je to Linux </echo>
 </target>

 <target name="-mac.run" if="isMac">
  <echo> je to Mac </echo>
 </target>

 <target name="run" depends="-linux, -mac.run" />
</project>

Tip: jméno právě používaného OS můžete získat z proměnné os.name

<target name="os">
 <echo>${os.name}</echo>
</target>
#apache-ant, #deployment, #detekce-os-pomoci-ant
26. 3. 2012

Google Closure Compiler v Apache ANT

Apache ANT a Google Closure Compiler je možné snadno propojit. Stáhněte si compiler.jar a do svého antího build skriptu přidejte:

<taskdef name="jscomp" classname="com.google.javascript.jscomp.ant.CompileTask"
classpath="build/Google-Closure-Compiler/compiler.jar"/>

Touto definicí získáte nový target jscomp, který pak stačí zavolat nad vašimi JavaScripty:

<jscomp compilationLevel="simple" warning="quiet"
debug="false" output="/js/main.min.js">
<sources dir="/js-src/">
 <file name="main.js"/>
 <file name="plugins.js"/>
</sources>
</jscomp>

Odkazy:

#apache-ant, #google-closure-compiler, #programovani
18. 1. 2011

Apache ANT a YUI Compressor

Minimalizace kódu je proces, při kterém se odstraní z kódu veškerá vata – komentáře, zbytečné mezery, odsazení atd. Výsledný minimalizovaný kód je menší a rychleji se přenese do prohlížeče. Pro minimalizaci kódu existuje řada nástrojů – některé se soustředí na Javascript, jiné zase umí minimalizovat CSS nebo HTML.

Můj oblíbenec YUI compressor zvládne minimalizovat CSS a Javascript – je naprogramovaný v Javě a spouští se přes příkazovou řádku.

Následující příkaz vytvoří nový soubor sample.min.css, který bude obsahovat minimalizovaný kód ze souboru sample.css:

java -jar yuicompressor-2.4.2.jar -o sample.min.css sample.css

Celý proces minimalizace kódu je možné automatizovat prostřednictvím nástroje Apache ANT o kterém jsem psal minule.

Následující sekvence úloh vytvoří ve složce build/wp-content/themes/omdesign minimalizované verze všech CSS souborů, které pro změnu najde ve složce wp-content/themes/omdesign.

<target name="css.minify">
  <mkdir dir="build/wp-content/themes/omdesign" />
  <apply executable="java" parallel="false" verbose="true" failonerror="true" dest="build/wp-content/themes/omdesign">
    <fileset dir="wp-content/themes/omdesign">
      <include name="*.css" />
    </fileset>
    <arg line="-jar"/>
    <arg path="c:\Program Files\yuicompressor-2.4.2\build\yuicompressor-2.4.2.jar"/>
    <arg line="--line-break 0"/>
    <srcfile/>
    <arg line="-o"/>
    <mapper type="glob" from="*.css" to="*.css"/>
    <targetfile/>
  </apply>
</target>

Je důležité dobře nastavit všechny cesty, jinak se úloha nespustí. Celou sekvenci je možné vylepšit změnou příkazu mapper, díky které budou nové soubory opatřeny o příponu min:

<mapper type="glob" from="*.css" to="*.min.css"/>

Všimněte si, že jednotlivé přepínače jsou zasílány do YUI compressoru pomocí příkazu arg. Na závěr alternativní sekvence pro Javascript:

<target name="js.minify">
  <mkdir dir="build/wp-content/themes/omdesign/js" />
  <apply executable="java" parallel="false" verbose="true" failonerror="true" dest="build/wp-content/themes/omdesign/js">
    <fileset dir="wp-content/themes/omdesign/js">
      <include name="*.js" />
    </fileset>
    <arg line="-jar"/>
    <arg path="c:\Program Files\yuicompressor-2.4.2\build\yuicompressor-2.4.2.jar"/>
    <srcfile/>
    <arg value="--charset" />
    <arg value="UTF-8" />
    <arg line="-o"/>
    <mapper type="glob" from="*.js" to="*.js"/>
    <targetfile/>
  </apply>
</target>
#apache-ant, #webdesign, #yui-compressor
11. 1. 2011

Automatizovaný dump MySQL databáze pomocí Apache ANT

Udělat dump databáze a nahradit všechen výskyt localhost za novou adresu. Tohle musíte udělat vždy, když přenášíte instalaci WordPress na produkční server – prostě pěkná otrava.

Následující Apache Ant skript to udělá za Vás:

<?xml version="1.0" encoding="UTF-8"?>
<project basedir=".">

  <target name="Backup database">

    <property name="database_name" value="mojedb"/>

    <mkdir dir="build" />

    <exec dir="" executable="c:\Program Files\wamp\bin\mysql\mysql5.5.8\bin\mysqldump.exe"
    output="build/${database_name}_local.sql">
      <arg line="--host=localhost" />
      <arg line="-u root" />
      <arg line="--password=" />
      <arg line="--add-drop-table" />
      <arg line="--default-character-set=utf8" />
      <arg line="--complete-insert" />
      <arg line="${database_name}" />
    </exec>

    <copy file="build/${database_name}_local.sql" tofile="build/${database_name}_server.sql"/>

    <replace file="build/${database_name}_server.sql" encoding="utf-8">
      <replacetoken><![CDATA[http://localhost]]></replacetoken>
      <replacevalue><![CDATA[http://www.adresa.cz]]></replacevalue>
    </replace>

  </target>

</project>

Skript je samozřejmě nutné upravit pro své podmínky. Například změnit cestu k mysqldump.exe, zadat heslo (a login), přepsat jméno databáze atd.

Velkou výhodou je, že Apache ANT je možné integrovat přímo do NetBeans , spuštění tohoto skriptu je pak otázka jednoho kliknutí.

image

Ještě jedna drobnost, skript takto hezky spustíte jen v případě, že bude mít příponu ant.

#apache-ant, #mysql, #php