apache ant build fichiers

J’essaie de sortir l’horodatage après chaque étape (cible). Lorsque j’excute le fichier de compilation ci-dessous par ant testtime, j’obtiens le résultat:

Buildfile: build.xml testdepend1: [echo] ****** Start: test depend 1 ****** [echo] ****** Finish: test depend 1****** [echo] 02/12/2009 11:58:07 AM testdepend2: [echo] ****** Start: test depend 2 ****** [echo] ****** Finish: test depend 2****** [echo] 02/12/2009 11:58:07 AM testdepend3: [echo] ****** Start: test depend 3 ****** [echo] ****** Finish: test depend 3****** [echo] 02/12/2009 11:58:07 AM 

Execter le fichier de construction ci-dessous:

             ${TODAY_UK}      ${TODAY_UK}      ${TODAY_UK}    

Pourquoi ai-je toujours le même horodatage?

Une fois évalué, TODAY_UK ne sera plus calculé.

Peut-être que vous devriez append au début de votre tâche quelque chose comme:

     

Utilisation de la tâche principale


Vous avez ce script à tester pour configurer, puis afficher un horodatage:

   DSTAMP: ${DSTAMP} TSTAMP: ${TSTAMP} TODAY: ${TODAY} TODAY_UK: ${TODAY_UK}        start.DSTAMP: ${start.DSTAMP} start.TSTAMP: ${start.TSTAMP} start.TODAY: ${start.TODAY}      

Vous obtenez toujours le même horodatage car la propriété contenant cette valeur est évaluée une seule fois . La proposition d’append un ” au début de la tâche n’aidera pas non plus car Ant ne mettra pas à jour la valeur de la propriété.

La solution que j’ai trouvée consiste à définir votre propre tâche Ant:

 public class StampedEcho extends Echo { private Ssortingng message; private Ssortingng pattern = "d-MMMM-yyyy"; private Locale locale = Locale.US; public void setPattern(Ssortingng pattern) { this.pattern = pattern; } public void setLocale(Ssortingng locale) { this.locale = new Locale(locale); } @Override public void setMessage(Ssortingng message) { this.message = message; } @Override public void execute() throws BuildException { Ssortingng date = new SimpleDateFormat(this.pattern, this.locale).format(new Date()); super.setMessage(date + (this.message == null ? "" : " " + this.message)); super.execute(); } } 

Ensuite, définissez un fichier Antlib (par exemple, message-antlib.xml ) pour instancier et invoquer la classe:

             

modifier votre build.xml en conséquence

         

pour obtenir la sortie suivante:

 [tsecho] 21:46:20 [tsecho] 21:46:20 start [tsecho] 21.46 end 

pourquoi n’utilisez-vous pas l’anti-fourmi ant auditeur vérifier cela

http://neopatel.blogspot.com/2009/09/timestamp-your-ant-build.html