La meilleure façon d'intégrer Git avec Ant?
Je cherche la meilleure façon d'intégrer Git avec Ant. Existe-t-il une tâche Ant largement utilisée pour Git? Quelqu'un a-t-il de l'expérience en utilisant Git via Ant (par exemple, tâche dédiée, appel exec, etc.)?
7 réponses
Ant prend en charge la commande exec que vous pouvez utiliser pour passer n'importe quelle commande (y compris Git) à la ligne de commande pour l'exécution. Vous pouvez toujours vous rabattre sur que.
Voici les tâches Git Ant via JGit: http://aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit / .
Regardez JGit-Ant. Malheureusement jgit-ant le projet tasks n'a pas toutes les principales actions git, vous pouvez trouver des informations supplémentaires ici.
Pour les développeurs java: vous pouvez facilement écrire vous-même des commandes git-ant en utilisant jgit comme dans cet exemple.
Il semble qu'il y ait eu un travail supplémentaire non officiel sur les tâches Ant pour git:
- http://github.com/newtriks/Ant-Funk (et article de blog http://www.newtriks.com/?p=910 )
- http://github.com/FrancisVarga/ant-git-macros
Je n'ai pas d'expérience avec ceux-ci, mais ils semblent plus étoffés que tlrobinson.
Utilisez une combinaison de la bibliothèque JGit avec du code <script language="javascript">
(j'ai utilisé Rhino lubrary mais vous pouvez également utiliser Groovy, etc.).
Il y a quelque temps, j'ai cherché sans succès des moyens prêts à l'emploi pour intégrer Git et Ant. J'avais besoin de possibilité de créer une build avec le nom de la branche Git. Enfin, je suis venu à la solution suivante:
L'extrait du vrai fichier 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>
Tout le contenu du fichier ./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
L'Invocation est similaire à:
ant TARGET options -Dusing.git=
Lorsque ${using.git}
est déclaré, Ant appelle la tâche -check-git-branch-name
pour recueillir le nom d'une branche (ou une validation du numéro si Git est détaché mode) et génère la construction avec le nom ajouté de la branche Git (ou hnumber de commit), par exemple build/TARGET-${git-branch-name}
.