Me parece un poco descabellado, pero ¿hay alguna tarea ANT para ver un directorio en busca de cambios y luego ejecutar una clase ANT particular cuando cambia el directorio?¿Hay una tarea ANT para ver un directorio de cambios?
Respuesta
Si los archivos solo se pueden agregar o cambiar en el directorio mirado, entonces puede usar esta tarea simple OutOfDate de antcontrib.
<property name="watched-dir.flagfile"
location="MUST be not in watched dir"/>
<outofdate>
<sourcefiles>
<fileset dir="watched-dir"/>
</sourcefiles>
<targetfiles>
<pathelement location="${watched-dir.flagfile}"/>
</targetfiles>
<sequential>
<!--Tasks when something changes go here-->
<touch file="${watched-dir.flagfile}"/>
</sequential>
</outofdate>
Si los archivos pueden desaparecer de la dir-visto, entonces usted tiene un problema más complicado, que pueda solucionar mediante la creación de la estructura de directorios sombra de la dir visto y comprobar si es compatible con el visto-dir. Esta tarea es más compleja, pero te voy a dar un script para crear un directorio de sombra, ya que no es sencillo:
<property name="TALK" value="true"/>
<property name="shadow-dir"
location="MUST be not in watched dir"/>
<touch
mkdirs="true"
verbose="${TALK}"
>
<fileset dir="watched-dir">
<patterns/>
<type type="file"/>
</fileset>
<!-- That's the tricky globmapper to make touch task work -->
<globmapper from="*" to="${shadow-dir}/*"/>
</touch>
<!--
Due to how touch task with mapped fileset is implemented, it
truncates file access times down to a milliseconds, so if you
would have used outofdate task on shadow dir it would always
show that something is out of date.
Because of that, touching all files in ${shadow-dir} again fixes
that chicken and egg problem.
-->
<touch verbose="${TALK}">
<fileset dir="${shadow-dir}"/>
</touch>
Con directorio de sombra creada, Voy a dejar la tarea de comprobar la consistencia de directorio como un ejercicio para el lector.
No importa si el directorio de destino tiene archivos más antiguos que el directorio de origen. Quiero una tarea ant que vigile el directorio y cuando guarde los cambios en el archivo en el editor, invocará una tarea específica. – leeand00
Es posible que pueda utilizar la tarea Waitfor
para lograr lo que desea. Bloquea hasta que una o más condiciones (como la presencia de un archivo en particular) se hagan realidad.
Se puede combinar la tarea apply con un fileset selector
<apply executable="somecommand" parallel="false">
<srcfile/>
<fileset dir="${watch.dir}">
<modified/>
</fileset>
</apply>
El conjunto de archivos comprobará los archivos contra una suma de comprobación MD5 almacenados para los cambios. Tendrá que poner ANT en un bucle para ejecutar este control repetidamente. esto es fácil de hacer en Unix:
while true
> do
> ant
> sleep 300
> done
Si no es una tarea Ant que hará esto:
https://github.com/chubbard/WatchTask
Requiere 1.7+. Puede ver cualquier cantidad de conjuntos de archivos e invocar cualquier destino dependiendo de qué conjunto de archivos proviene.
No tiene licencia ... :( –
@JethroLarson ahora sí. Agregado el mismo día que tu comentario, parece :) :) – kekkis
aún no he descubierto cómo usarlo, no sé dónde para encontrar el JAR sus referencias, no hay suficiente documentación. – Vadorequest
- 1. ¿Cómo ver un directorio de cambios?
- 2. Hay una tarea ant que puede copiar sin perder permisos
- 3. Método abreviado de teclado Eclipse para una tarea Ant?
- 4. Finetuning FindBugs tarea ant
- 5. ¿Puedo escribir una tarea ant que toma parámetros cuando se ejecuta desde otra tarea ant?
- 6. Directorio de monitores para cambios
- 7. múltiple depende de tarea ant
- 8. Deteniendo una tarea java paralela con ant
- 9. ¿Cómo puedo controlar un directorio de Windows para ver los cambios?
- 10. Ant buildfile no contiene una tarea javac
- 11. ¿Cómo configuro el directorio de trabajo para la tarea Ant 'junit'?
- 12. Ant: Encuentre la ruta de un archivo en un directorio
- 13. SASS a CSS a través de una tarea ANT + creación del directorio
- 14. Excluyendo .git en una tarea Ant <tar>
- 15. ¿Cómo ejecuto un comando Ant si una tarea falla?
- 16. Evite detectar archivos incompletos al mirar un directorio para ver cambios en Java
- 17. Usar la tarea ant war para incluir archivos en el directorio WEB-INF
- 18. ¿Cómo puedo aplicar un tiempo de espera a una tarea Ant?
- 19. ¿Hay alguna manera de ver una base de datos mysql para cambios usando perl?
- 20. Objetivo Ant para mover directorios fuera de otro directorio
- 21. Usando tarea ant Maven para instalar frasco para repositorio local
- 22. ¿Cómo establecer el directorio de trabajo para una tarea Fabric?
- 23. ¿Cómo realizar el pago desde SVN con una tarea ANT?
- 24. ¿Cómo uso Ant para copiar una carpeta?
- 25. Ant copy classpath jar a un directorio
- 26. ¿Hay alguna tarea Ant que pueda obtener un artefacto de Hudson/Jenkins?
- 27. Cómo copiar un directorio usando Ant
- 28. Ejecutar una tarea predeterminada en ANT en caso de falla
- 29. Ant éxito incluso cuando la tarea Ant falla
- 30. Ejecutar una tarea Ant antes de depurar en Eclipse
Bueno, no he encontrado una solución simple para esto, así que estoy usando un comando específico de bash por el momento: 'inoticoming --foreground ./src/ ant \;' –
leeand00