Лучший способ интегрировать Git с Ant? - PullRequest
48 голосов
/ 08 мая 2009

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

Ответы [ 7 ]

22 голосов
/ 26 июля 2010

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

19 голосов
/ 08 мая 2009

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

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

13 голосов
/ 06 июля 2011

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

6 голосов
/ 28 марта 2013

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

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

5 голосов
/ 22 июня 2010

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

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

0 голосов
/ 17 октября 2016

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

0 голосов
/ 04 октября 2016

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

...