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

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

7 ответов

Решение

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

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

Ant поддерживает команду exec, которую вы можете использовать для передачи любой команды (включая Git) в командную строку для выполнения. Вы всегда можете вернуться к этому.

Вот Git Ant Tasks через JGit: http://aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit/.

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

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

Похоже, что была сделана дополнительная неофициальная работа над задачами Ant для git:

У меня нет опыта с ними, но они кажутся более плотными, чем у Тлробинсона.

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

Некоторое время назад я безуспешно искал готовые к использованию способы интеграции 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 (или hnumber коммита), например build/TARGET-${git-branch-name},

Другие вопросы по тегам