将Git与Ant集成的最佳方法是什么?

我正在寻找将Git与Ant集成的最佳方法。 Git有一个广泛使用的Ant任务吗? 有没有人有任何使用Git通过Ant的经验(例如专用任务,执行调用等)?

看起来不像Git有一套Ant任务。

这个博客谈到了一些与Git合作的基本任务。

Ant支持exec命令 ,您可以使用该命令将任何命令(包括Git)传递到命令行执行。 你可以随时回避。

这里是Git Ant任务通过JGit: http : //aniszczyk.org/2011/05/12/git-ant-tasks-via-jgit/ 。

看看JGit-Ant 。 不幸的是, jgit-ant任务项目并不是所有主要的git动作,你可以在这里find更多的信息。

对于java开发人员来说:在这个例子中,你可以使用jgit轻松地编写git-ant-commands。

看起来好像还有一些额外的,非官方的工作在Ant任务上完成:

我没有这方面的经验,但他们似乎比tlrobinson更丰富。

使用JGit库与一些<script language="javascript">代码(我使用Rhino Lubrary,但你可以同样使用Groovy等)的组合。

在前一段时间,我没有find准备好使用的方式来整合Git和Ant。 我需要使用Git分支的名字创build一个构build的可能性。 最后我来到了以下解决scheme:

真正的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}