Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用不同的参数多次调用ant目标_Ant - Fatal编程技术网

使用不同的参数多次调用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中,是否可以使用不同的参数多次调用同一目标

我的命令如下所示:

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>