我想从ANT运行git clone。但似乎像ANT无法找到git可执行文件。我尝试了以下选项。如何告诉ANT-exec,git可执行文件的位置
<exec executable="/opt/freeware/bin/git">
<exec executable="/usr/bin/git">
<exec executable="git">
我想从ANT运行git clone。但似乎像ANT无法找到git可执行文件。我尝试了以下选项。如何告诉ANT-exec,git可执行文件的位置
<exec executable="/opt/freeware/bin/git">
<exec executable="/usr/bin/git">
<exec executable="git">
您想将位置抽象为属性。
<property name="git.executable" value="/usr/bin/git" />
,然后在exec
您指定财产
<exec executable="${git.executable}">
这将允许他人在命令行指定一个不同的位置:
ant -Dgit.executable=/usr/local/bin/git
或者更好的是在一个user.properties
文件被源代码控制忽略,但被导入到build.xml中
T帽子可以回答你的问题,但我想提一提的是,这就像跨越流将源代码控制系统引用到构建中一样。你希望这些问题是分开的。构建应该是源代码控制不可知的。
更加可靠的选择是使用jgit ANT任务:
<project name="demo" default="clone">
<target name="bootstrap">
<mkdir dir="${user.home}/.ant/lib"/>
<get dest="${user.home}/.ant/lib/jgit.jar" src="http://search.maven.org/remotecontent?filepath=org/eclipse/jgit/org.eclipse.jgit/3.1.0.201310021548-r/org.eclipse.jgit-3.1.0.201310021548-r.jar"/>
<get dest="${user.home}/.ant/lib/jgit.ant.jar" src="http://search.maven.org/remotecontent?filepath=org/eclipse/jgit/org.eclipse.jgit.ant/3.1.0.201310021548-r/org.eclipse.jgit.ant-3.1.0.201310021548-r.jar"/>
<get dest="${user.home}/.ant/lib/jsch.jar" src="http://search.maven.org/remotecontent?filepath=com/jcraft/jsch/0.1.50/jsch-0.1.50.jar"/>
</target>
<target name="clone">
<taskdef resource="org/eclipse/jgit/ant/ant-tasks.properties"/>
<git-clone uri="https://github.com/myproject/myrepo.git" dest="build/myrepo" branch="master"/>
</target>
<target name="clean">
<delete dir="build"/>
</target>
</project>
注:
'哪个git'说的是什么命令? –
/usr/bin/git ... – Ahmad