Лучший способ интегрировать Git с Ant?

Я ищу лучший способ для интеграции Git с Ant. Существует ли широко используемая Ant задача для Git? У кого-нибудь есть опыт использования Git через Ant (например, выделенная задача, вызов exec и т.д.)?

Ответ 1

Не похоже, что существует набор Ant задач для Git.

Этот блог рассказывает о некоторых элементарных задачах для работы с Git.

Ответ 4

Посмотрите на JGit- Ant. К сожалению, jgit- Ant проект проекта не имеет всех основных действий git, вы можете найти дополнительную информацию здесь.

Для разработчиков java: вы можете легко написать git - ant - использовать себя jgit, как в эти примеры.

Ответ 6

Используйте комбинацию библиотеки JGit с некоторым кодом <script language="javascript"> (я использовал Rhino lubrary, но вы могли одинаково использовать Groovy и т.д.).

Ответ 7

Время от времени я безуспешно искал готовые способы использования Git и Ant. Мне нужна была возможность создать сборку с именем ветки Git. Наконец, я пришел к следующему решению:

Выдержка из реального файла 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>

Весь контент файла ./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

Вызов похож на:

ant TARGET options -Dusing.git=

Когда объявляется ${using.git}, Ant вызывает задачу -check-git-branch-name для сбора имени ветки (или числа фиксации, если Git находится в отключенном режиме) и генерирует сборку с добавленным именем Git ветвь (или commit hnumber), например build/TARGET-${git-branch-name}.