将多个目标传递给子服务器

时间:2013-12-20 23:44:28

标签: android ant build

我有一个使用Ant构建的Android项目,使用一些标准目标(调试,发布,安装,清理等)。我发现我可以使用如下命令运行多个目标:

ant clean debug

在这种情况下将运行“clean”,然后在项目上进行“debug”构建。这很好。

我还有另一个使用Ant构建的项目,我的第一个主项目依赖于该项目。我正在尝试在预建步骤中自动构建子项目。到目前为止,我有这个:

<target name="-pre-build">        
    <subant target="${ant.project.invoked-targets}" failonerror="true">
        <fileset dir="../other_project" includes="build.xml" />
    </subant>

    <!-- (additional steps here) -->
</target>

这适用于一个目标(例如ant debug),但是当我运行多个目标(例如ant clean debug)时,我收到以下错误:

Target "clean,debug" does not exist in the project "com.foo.other_project"

显然,当我真的想为每个targest重新运行subant时,invoked-targets是一个以逗号分隔的列表。有谁知道如何实现这一目标?有没有办法将目标列表传递给subant,或者可能遍历列表并为每个目标运行一次subant?

谢谢!

1 个答案:

答案 0 :(得分:1)

documentation描述了如何指定多个目标:

  

您可以使用嵌套的“target”元素指定多个目标,而不是使用“target”属性。这些将被执行,就像使用单个目标一样调用Ant,其依赖性是指定的目标,如此指定。

还提供了一个例子:

<subant failonerror="false">
    <fileset dir="." includes="**/build.xml" excludes="build.xml"/>
    <target name="clean"/>
    <target name="build"/>
</subant>