Szukam najlepszego sposobu na integrację Gita z Antem. Czy istnieje szeroko stosowane zadanie Ant dla Gita? Czy ktokolwiek ma doświadczenie w korzystaniu z Git poprzez Ant (np. Dedykowane zadanie, wykonanie exec itp.)?Najlepszy sposób na integrację Gita z Ant?
Odpowiedz
Wygląda na to, że nie było zestawu zadań Ant dla Gita.
This blog mówi o niektórych podstawowych zadaniach do pracy z Git.
tutaj jest Git Ant Tasks przez JGit http://aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit/ –
To może zrobić tylko 'git clone',' git init' i 'git checkout '. – zb226
blog jest nieaktualny. Zaktualizuj link do bloga: –
Wygląda nastąpił pewien dodatkowy, nieoficjalny prace na zadania Ant dla git:
- http://github.com/newtriks/Ant-Funk (i blogu http://www.newtriks.com/?p=910)
- http://github.com/FrancisVarga/ant-git-macros
nie mam doświadczenie z nimi, ale wydają się bardziej rozwinięte niż tlrobinson.
Ant obsługuje exec command, za pomocą którego można przekazać dowolne polecenie (w tym Git) do wiersza poleceń w celu wykonania. Zawsze możesz na tym polegać.
Oto zadania Git Ant za pośrednictwem JGit: http://aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit/.
Look at JGit-Ant. Niestety projekt zadań jgit-ant nie zawiera wszystkich głównych czynności git, można znaleźć dodatkowe informacje here.
Dla programistów java: można łatwo napisać polecenia git-ant samemu przy użyciu jgit jak w this examples.
Link jest uszkodzony. – Valentino
Użyj kombinacji biblioteki JGit z kodem <script language="javascript">
(użyłem Rhino lubrary, ale równie dobrze możesz używać Groovy, itp.).
Dawno temu bezskutecznie szukałem gotowych, w użyciu sposobów integracji Git i Ant. Potrzebowałem możliwości stworzenia kompilacji z nazwą oddziału Git. W końcu doszedłem do następującego rozwiązania:
Wyciąg z prawdziwego build.xml
pliku:
<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>
Cała zawartość pliku ./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
inwokacja jest podobny do:
ant TARGET options -Dusing.git=
Gdy ${using.git}
jest de clared, Ant wywołuje zadanie -check-git-branch-name
, aby zebrać nazwę gałęzi (lub numer zatwierdzenia, jeśli Git jest w trybie odłączonym) i generuje kompilację z dołączoną nazwą gałęzi Git (lub numerem zatwierdzenia), na przykład build/TARGET-${git-branch-name}
.
Bardziej precyzyjne pytanie to http://stackoverflow.com/questions/2974106/how-to-lookup-test-latest-git-commit-hash-from-an-ant-build-script. Odpowiedzi tam również mogą być pomocne. – koppor