我想执行所有目标,而不是指定每个目标。
例如:
<?xml version="1.0"?>
<project name="Kte" default="all" basedir="/home/Kte">
<target name="target1">
</target>
<target name="target2">
</target>
</project>
目前我使用:
$ ant target1
$ ant target2
我想用:
$ ant
并且已经构建了两个目标(这只是一个示例。现实我有一个很长的更改Ant构建文件与子蚂蚁文件,所以有一个“全部”功能非常方便。
答案 0 :(得分:22)
你可以创建一个ant任务all,这取决于你拥有的所有特定目标......
<target name="all" depends="target1, target2, ... ">
</target>
ant all
答案 1 :(得分:4)
您还可以设置默认任务,只需键入ant即可运行。默认属性位于项目元素中。
<project name="foo" default="all">
<target name="all" depends="target1, target2"/>
<target name="target1">
...
</target>
<target name="target2">
...
</target>
</project>
$ ant
答案 2 :(得分:2)
因为Ant是声明性的,所以它不能很好地完成这种事情。您可以考虑使用script
task。
Ant构建文件有一个隐式的未命名目标,它“保存”所有不属于命名目标的任务。所以,这个位于顶层,会做你所描述的。
<script language="javascript"><![CDATA[
importClass( java.util.Vector );
vec = new Vector( project.getTargets().keySet() );
vec.setSize( vec.size( ) - 1 );
project.executeTargets( vec );
]]>
</script>
(隐式目标出现在列表的末尾,因此调整大小以防止递归。)
如果您将该脚本放在'runner'目标中 - 这将执行构建文件中的所有其他目标 - 您需要从Vector中删除'runner'(以及隐含的target-with-no-name)防止递归。