使用不同的参数多次调用ant目标
在Ant中,是否可以使用不同的参数多次调用同一目标 我的命令如下所示:使用不同的参数多次调用ant目标,ant,Ant,在Ant中,是否可以使用不同的参数多次调用同一目标 我的命令如下所示: ant unittest -Dproject='proj1' unittest -Dproject='proj2' 问题是unittest运行了两次,但仅针对proj2: unittest: [echo] Executing unit test for project proj2 unittest: [echo] Executing unit test for project proj2 我知道我可以运
ant unittest -Dproject='proj1' unittest -Dproject='proj2'
问题是unittest运行了两次,但仅针对proj2:
unittest:
[echo] Executing unit test for project proj2
unittest:
[echo] Executing unit test for project proj2
我知道我可以运行两个单独的ant命令,但这将导致单元测试报告文件出现其他问题。您可以添加另一个目标,使用不同的参数,使用任务调用您的单元测试目标两次
<project name="test" default="test">
<target name="test">
<antcall target="unittest">
<param name="project" value="proj1"/>
</antcall>
<antcall target="unittest">
<param name="project" value="proj2"/>
</antcall>
</target>
<target name="unittest">
<echo message="project=${project}"/>
</target>
</project>
或者,您可以将unittest目标更改为:
在同一命令行中,可以多次定义属性-Dproject
。其效果是只使用最后一个定义,因为它覆盖了以前的任何定义。这与Java命令行的情况相同。应避免使用Antcall,因为它有众所周知的缺点=>请改用macrodef!如果我尝试为param设置动态值,它会起作用吗?“hariszaman”有什么好运气吗?我正在为标签寻找与类似的东西。我会检查它的。我做了很长时间了
test:
unittest:
[echo] project=proj1
unittest:
[echo] project=proj2
BUILD SUCCESSFUL
Total time: 0 seconds
<project name="test" default="test">
<target name="test">
<unittest project="proj1"/>
<unittest project="proj2"/>
</target>
<macrodef name="unittest">
<attribute name="project"/>
<sequential>
<echo message="project=@{project}"/>
</sequential>
</macrodef>
</project>