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命令,但这将导致单元测试报告文件出现其他问题。

最佳答案

您可以使用antcall任务添加另一个目标,以使用不同的参数两次调用您的unittest目标两次。

<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>

输出:
test:

unittest:
     [echo] project=proj1

unittest:
     [echo] project=proj2

BUILD SUCCESSFUL
Total time: 0 seconds

另外,您可以将unittest目标更改为macrodef:
<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>

关于ant - 使用不同的参数多次调用ant目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25448523/

相关文章:

android - 更新 SDK 后,构建 Android 包失败并显示 'apply' 消息 - 如何修复?

java - Eclipse 默认构建和 ant 构建

java - 在 Eclipse 中使用 yGuard 混淆库

linux - ant sshexec 任务在执行命令返回时或之前返回吗?

ant - Jenkins 仅在必要时触发依赖构建?

android - 在 ubuntu 终端中使用 ANT 生成 apk

android - 如何使用命令行构建 Kony iOS 项目

java - 在 Eclipse 中找不到 Java Import?

intellij-idea - IntelliJ 中的 UglifyJS 文件观察器在构建期间缩小已经缩小的文件

java - FindBugs 扫描外部 jar