我有一个使用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?
谢谢!
答案 0 :(得分:1)
documentation描述了如何指定多个目标:
您可以使用嵌套的“target”元素指定多个目标,而不是使用“target”属性。这些将被执行,就像使用单个目标一样调用Ant,其依赖性是指定的目标,如此指定。
还提供了一个例子:
<subant failonerror="false">
<fileset dir="." includes="**/build.xml" excludes="build.xml"/>
<target name="clean"/>
<target name="build"/>
</subant>