Я ищу лучший способ для интеграции Git с Ant. Существует ли широко используемая Ant задача для Git? У кого-нибудь есть опыт использования Git через Ant (например, выделенная задача, вызов exec и т.д.)?
Лучший способ интегрировать Git с Ant?
Ответ 1
Не похоже, что существует набор Ant задач для Git.
Этот блог рассказывает о некоторых элементарных задачах для работы с Git.
Ответ 2
Ant поддерживает команду exec, которую вы можете использовать для передачи любой команды (включая Git) в командную строку для выполнения. Вы всегда можете отказаться от этого.
Ответ 3
Вот Git Ant Задачи через JGit: http://aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit/.
Ответ 4
Посмотрите на JGit- Ant. К сожалению, jgit- Ant проект проекта не имеет всех основных действий git, вы можете найти дополнительную информацию здесь.
Для разработчиков java: вы можете легко написать git - ant - использовать себя jgit, как в эти примеры.
Ответ 5
Похоже, была сделана некоторая дополнительная неофициальная работа над Ant задачами для git:
- http://github.com/newtriks/Ant-Funk (и сообщение в блоге http://www.newtriks.com/?p=910)
- http://github.com/FrancisVarga/ant-git-macros
У меня нет опыта с ними, но они кажутся более четкими, чем tlrobinson's.
Ответ 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}
.