La mejor forma de integrar Git con Ant?

Estoy buscando la mejor manera de integrar Git con Ant. ¿Hay una tarea Ant ampliamente utilizada para Git? ¿Alguien tiene alguna experiencia usando Git a través de Ant (por ejemplo, tarea dedicada, llamada de ejecutivo, etc.)?

No parece que hubiera un set de tareas Ant para Git.

Este blog habla sobre algunas tareas rudimentarias para trabajar con Git.

Ant es compatible con el command exec que puede usar para pasar cualquier command (incluido Git) a la command-line para su ejecución. Siempre puedes recurrir a eso.

Aquí está Git Ant Tasks a través de JGit: http://aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit/ .

Mira JGit-Ant . Lamentablemente, el proyecto de tareas jgit-ant no tiene todas las principales acciones de git, aquí puede encontrar información adicional.

Para los desarrolladores de Java: puede escribir fácilmente commands de git-ant con el uso de jgit como en este ejemplo .

Parece que ha habido algún trabajo no oficial adicional en las tareas de Ant para git:

No tengo experiencia con estos, pero parecen más carnosos que los de tlrobinson.

Use una combinación de la biblioteca JGit con algún código de <script language="javascript"> (utilicé la function de lubricación de Rhino pero también podía usar Groovy, etc.).

Hace un time, sin éxito, busqué forms lists para usar para integrar Git y Ant. Necesitaba la posibilidad de crear una compilation con el nombre de la twig de Git. Finalmente llegué a la siguiente solución:

El extracto del file real build.xml :

 <target name="-check-git-branch-name" if="using.git" > <exec executable="bash" logError="true" failonerror="true" outputproperty="git-branch-name"> <arg value="./bin/git-branch-name.sh" /> </exec> </target> 

Todo el contenido del file ./bin/git-branch-name.sh

 #!/bin/bash # This script is the part of integration GIT to ANT. Once launched it # should return the name of the current branch or the current commit (if # GIT is the detached HEAD mode). Further the printed name is appended to # the name of the resulting directory. To initialize this feature you need # to run ANT with the option "-Dusing.git=". exec 2>/dev/null git rev-parse --abbrev-ref HEAD | grep -v HEAD || git rev-parse HEAD 

La invocación es similar a:

 ant TARGET options -Dusing.git= 

Cuando se declara ${using.git} , Ant llama a la tarea -check-git-branch-name para recostackr el nombre de una twig (o el número de una confirmación si Git está en modo separado) y genera la construcción con el nombre adjunto de la twig Git (o hnumber de commit), por ejemplo build/TARGET-${git-branch-name} .