【发布时间】:2014-03-21 01:55:41
【问题描述】:
如何将嵌套参数从一个 ant 目标传递到另一个?
我需要将可变数量的嵌套元素从一个目标传递到另一个目标。
我有一个包含所有标准构建任务的通用文件,该文件包含在我的所有项目中。 我正在添加一个新的自定义任务,该任务采用可变数量的嵌套参数 作为标准,所有 ant 调用都是通过公共文件进行的,以确保构建样式和日志记录的一致性。 因此,新的自定义任务及其嵌套子任务将在通用脚本中定义。
项目构建脚本如下所示
<target name="projectBuild">
...
<ant target="_newFooTaskWrapper" antfile="commonFile">
<property name="_arg1" value="hello"/>
<property name="_arg2" value="world"/>
<nestedArg value="qux"/>
<nestedArg value="baaz"/>
...
<nestedArg value="AAAAA"/>
</ant>
...
</target>
常见的脚本如下所示:
<target name ="_newFooTaskWrapper">
<echo message="Target _newFooTaskWrapper in project ${ant.project.name} from base directory ${basedir}"/>
<echo message="arg1 = ${_arg1}"/>
<echo message="arg2 = ${_arg2}"/>
<taskdef name="newFooTask" classname="org.foo.NewFooTask"/>
<typedef name="nestedArg" classname="org.foo.NewFooTask$NestedArg"/>
<newFooTask arg1="${_arg1}" arg2="${_arg2}">
<nestedArg value="qux"/>
<nestedArg value="baaz"/>
...
<nestedArg value="AAAAA"/>
</newFooTask>
显然,这是不对的。我的问题是,这样做的正确方法是什么?
【问题讨论】: