以下是我使用windows
的方法<target name="forknewant">
<property name="ant.dir" value="${basedir}/apache-ant-1.8.2" />
<exec executable="cmd" dir="${project.loc}">
<arg value="/K" />
<arg value="start" />
<arg value=""${project.title}"" />
<arg line="cmd.exe /k ant" />
<arg value="-Dtest.haltonfailure=no" />
<env key="CLASSPATH" value="" />
<env key="ANT_HOME" value="${ant.dir}" />
<env key="PATH" value="${ant.dir}/bin;${java.home}/bin" />
</exec>
</target>
此代码的要求是分叉新构建,父构建不等待并显示控制台输出。
我知道这项工作适用于Windows,但我正在寻找跨平台的方法。
答案 0 :(得分:1)
您可以使用从另一个运行一个Ant脚本的ant
任务来实现您想要的任务。像这样:
<ant antfile="build.xml"
dir="${project.loc}"
inheritAll="false"
inheritRefs="false" />
但是,父构建文件将等待此任务完成,然后再继续。
您可以考虑使用parallel
任务并行运行多个内容。根据您想要做什么,这可能会解决您的问题。请务必阅读parallel
文档中有关并发性的警告。
parallel
将等待其运行的所有任务完成。但是,您可以使用daemons
标记来避免这种情况。所以最接近你要求的是:
<parallel>
<daemons>
<ant antfile="build.xml"
dir="${project.loc}"
inheritAll="false"
inheritRefs="false" />
</daemons>
</parallel>
这将在${project.loc}
中运行Ant构建文件,而不是等待它完成。但是有一个重要的警告:如果主构建文件首先完成,它将终止生成的构建过程。这在parallel
doc。