Affichage des articles dont le libellé est ant. Afficher tous les articles
Affichage des articles dont le libellé est ant. Afficher tous les articles

dimanche 31 janvier 2010

ant : copier et renommer des images


Description


Ant permet de copier des fichiers de façon un peu intelligente.
Voici comment copier en renommant les images d'un répertoire en fonction de la date de traitement.


Exemple


Pour copier tous les fichiers "JPG" de "CRIM*.JPG" en "${DSTAMP}_*.jpg". La numérotation des images issues de l'APN est gardée, mais, améliorée.

Pour tester, taper la ligne suivante en ligne de commande :
ant -f copierAPN.xml
à supposer que le fichier d'exemple ci-après se nomme copierAPN.xml.


<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="deplacerCarteSimm" default="traiteCarteSimm" basedir=".">

<description> truc </description>

<target name="traiteCarteSimm">
<tstamp>
<format property="DSTAMP" pattern="yyyyMMdd-HHmmss" />
</tstamp>
<property name="in.rep" value="F:\DCIM\100CRESI"/>
<property name="out.rep" value="c:/${DSTAMP}"/>

<mkdir dir="${out.rep}"/>
<copy todir="${out.rep}" includeEmptyDirs="false" failonerror="false" flatten="false" overwrite="true" verbose="false">
<fileset dir="${in.rep}">
<include name="**/*.*" />
</fileset>
<mapper type="glob" from="CRIM*.JPG" to="${DSTAMP}_*.jpg"/>
</copy>
</target>

</project>



Plus d'informations sur



  • la tâche copy ici.

  • la tâche tstamp ici.

  • le typage mapper ici.

  • Ant ici.





dimanche 24 janvier 2010

ant : exécuter des ordres SQL


Description


Ant permet de traiter des scripts SQL pour peu que les connecteurs jdbc existent.
Voici un exemple simple permettant de récupérer l'utilisateur connecté à une base Oracle.


Exemple


Dans cet exemple, nous récupérons dans un fichier CSV le résultat de l'exécution d'une requête Oracle simple pour lesquels certains paramètres de connexions sont passés via des constantes.

Pour tester, taper la ligne suivante en ligne de commande :ant -f getSqlUser.xml
à supposer que le fichier d'exemple ci-après se nomme getSqlUser.xml.


<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="doSQL" default="doSqlTout" basedir=".">

<description> truc </description>

<property name="sql.rep.out" value="out/sql"/>
<property name="sql.rep.lib" value="lib"/>

<property name="oracle.userid" value="moi"/>
<property name="oracle.password" value="moi"/>
<property name="oracle.sid" value="mabase"/>

<target name="doSqlTout">
<mkdir dir="${sql.rep.out}"/>
<sql
driver="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@:1521:${oracle.sid}"
userid="${oracle.userid}"
password="${oracle.password}"
output="${sql.rep.out}/sortie.csv"
classpath="${sql.rep.lib}/OracleThinDrivers.jar"
print="yes"
delimiter=";"
>
select user from dual ;
</sql>

</target>

</project>


Bonnes pratiques



  • utiliser des propriétés ( des constantes ) pour la réutilisabilité du code.



Bon point



  • la gestion normalisée des warning depuis ant v 1.8

  • la gestion correctes des ordres DDL ( create, drop, ... ) depuis ant v 1.7 concernant les warning associés


Plus d'informations sur





vendredi 22 janvier 2010

ant : linéariser un fichier LDIF via une expression régulière


Description


Ant permet de traiter des fichiers grâce à des expressions régulières.
Voici un exemple simple permettant de traiter des fichiers LDIF.


Exemple


Par défaut, les fichiers LDIF exportés sont sur 72 caractères. Les lignes coupées sont facilement visibles : elles commencent par un caractère blanc.
Objectif : réunir les lignes coupées en suppriment le caractère blanc en trop.
Problème : les fichiers LDIF, même sous Windows, sont souvent au format Unix. Le programme les mettra au format Windows grâce à la tâche fixcrlf.


Pour tester, taper la ligne suivante en ligne de commande :ant -f traiteLdif.xml
à supposer que le fichier d'exemple ci-après se nomme traiteLdif.xml.


<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="doRR" default="doRR" basedir=".">

<description> linearise un LDIF </description>

<property name="rrLdif.rep.in" value="./in/replaceregexp"/>
<property name="rrLdif.rep.out" value="./out/replaceregexp"/>

<target name="doRR" >
<delete includeemptydirs="true" failonerror="false" dir="${rrLdif.rep.out}"/>
<mkdir dir="${rrLdif.rep.out}"/>

<copy todir="${rrLdif.rep.out}" flatten="false" overwrite="true" verbose="false">
<fileset dir="${rrLdif.rep.in}">
<include name="**/*.ldif" />
</fileset>
</copy>

<fixcrlf srcdir="${rrLdif.rep.out}" includes="**/*.ldif" eol="crlf" />

<replaceregexp match=" " replace="" byline="false" flags="gm">
<fileset dir="${rrLdif.rep.out}" includes="**/*.ldif"/>
</replaceregexp>

</target>

</project>


Bonnes pratiques



  • utiliser des propriétés ( des constantes ) pour la réutilisabilité du code.



Bon point



  • les tâches fixcrlf et replaceregexp peuvent empêcher la mise à jour du timestamp des fichiers modifiés.


Plus d'informations sur



  • la tâche fixcrlf ici.

  • la tâche replaceregexp ici.

  • Ant ici.




ant : appliquer une feuille de style XSL


Description


Ant permet d'appliquer des feuilles de styles XSL sur des formats variés.
Voici comment créer des fichiers XML et HTML à partie de fichiers XML.


Exemple


Pour créer des fichiers XML indentés ou non à partir de fichiers XML.


Pour tester, taper la ligne suivante en ligne de commande :ant -f transformationXsl.xml
à supposer que le fichier d'exemple ci-après se nomme transformationXsl.xml.


<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="doXsl" default="doXsl" basedir=".">
<description> applique une feuille de style </description>
<target name="doXsl" >
<xslt in="in/xsl/team.xml" out="out/xsl/team2.html" style="in/xsl/team.xsl" force="true" />
<xslt in="in/xsl/team2.xml" out="out/xsl/team4.xml" style="in/xsl/team2.xsl" force="true" />
<xslt in="in/xsl/team2.xml" out="out/xsl/team4bis.xml" style="in/xsl/team2.xsl" force="true" >
<outputproperty name="indent" value="yes"/>
</xslt>
</target>
</project>


Bonnes pratiques



  • utiliser des propriétés ( des constantes ) pour la réutilisabilité du code.


Plus d'informations sur





ant : créer des vignettes


Description


Ant permet de copier des fichiers de façon à les redimensionner, ce qui est adéquat pour faire des vignettes.
Voici comment créer des vignettes pour certains types de fichiers.


Exemple


Pour créer des vignettes d'une taille maximum de 160 en largeur pour des jpeg depuis le répertoire relatif ./in/images vers le répertoire relatif ./out/_img.

Pour tester, taper la ligne suivante en ligne de commande :
ant -f imagettes.xml
à supposer que le fichier d'exemple ci-après se nomme imagettes.xml.

Installation supplémentaire : la tâche image nécessite l'installation de fichiers jar trouvable ici et à placer par exemple dans le répertoire lib de votre installation ant.

<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="makeThumbs" default="makeThumbs" basedir=".">

<description> truc </description>

<property name="img.rep.in" value="./in/images"/>
<property name="img.rep.out" value="./out/_img" />

<target name="makeThumbs">
<image destdir="${img.rep.out}" overwrite="yes">
<fileset dir="${img.rep.in}">
<include name="**/*.jpeg" />
</fileset>
<scale width="160" proportions="cover"/>
</image>
</target>

</project>


Plus d'informations sur


  • la tâche image ici.
  • les jars supplémentaires à installer ici et ici.
  • les critères fichiers ici.
  • les "types de ressources" fichiers ici.
  • Ant ici.




ant : copier des fichiers par rapport à une date


Description


Ant permet de copier des fichiers de façon un peu intelligente.
Voici comment copier ( sauvegarder ) tous les fichiers et répertoires en fonction d'une date.


Exemple


Pour copier tous les fichiers xml et répertoires en contenant ) depuis _test vers ___svg, fichiers créés après le 6/12/2007 ( c'est le format GB des dates qui est utilisé, pas le format ISO ).

Pour tester, taper la ligne suivante en ligne de commande :
ant -f sauvegarder.xml
à supposer que le fichier d'exemple ci-après se nomme sauvegarder.xml.

<project name="monProject" default="copyDate">
<target name="copyDate">
<copy todir="c:/___svg">
<fileset dir="c:/_test">
<include name="**/*.xml"/>
<date datetime="12/06/2007 00:00 AM" when="after"/>
</fileset>
</copy>
</target>
</project>


Plus d'informations sur


  • la tâche copy ici.
  • les critères fichiers ici.
  • les "types de ressources" fichiers ici.
  • Ant ici.