以下代码会引发以下错误:仅允许导入作为顶级任务
<target name="packfiles">
<if>
<equals arg1="${pack.type}" arg2="impl1" />
<then>
<import as="packimpl" file="myImplementation1.xml">
</then>
<else>
<import as="packimpl" file="myImplementation2.xml">
</else>
</if>
<antcall target="packimpl.build" />
</target>
答案 0 :(得分:2)
任务documentation明确提及:
导入任务只能用作顶级任务。这意味着它可能不会在目标中使用。
要解决此问题,只需将导入移到目标之外。
<project ...>
...
<if>
<equals arg1="${pack.type}" arg2="impl1" />
<then>
<import as="packimpl" file="myImplementation1.xml">
</then>
<else>
<import as="packimpl" file="myImplementation2.xml">
</else>
</if>
<target name="packfiles">
<antcall target="packimpl.build" />
</target>
...
</project>
答案 1 :(得分:2)
<ac:if>
<isset property="some_property_is_set" />
<then>
<import file="file1.xml" />
</then>
</ac:if>
在开始声明目标
之前尝试以上操作“在执行时,它将选择适当的ProjectHelper来解析导入的文件,使用与启动时执行的算法相同的算法。所选的ProjectHelper实例将负责实际解析导入的文件”