在我们的项目中,我们有一个common.xml,它包含在我们所有的 ant 文件中。这个common.xml包含我们在项目中使用的所有常见任务。
最近我们想在我们的项目中使用 ant-contrib。所以我们在common.xml中包含了以下任务定义
<project name="CommonTasks" basedir="." xmlns:ac="antlib:net.sf.antcontrib">
<taskdef uri="antlib:net.sf.antcontrib" resource="net/sf/antcontrib/antlib.xml>
<classpath>
<pathelement location="/usr/lib/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
</project>
在我们的build.xml之一中,我们有以下代码
<project name="Build" basedir=".">
<import file="common.xml" />
<ac:if>
<ac:not>
<isset property="android.available" />
</ac:not>
<ac:then>
<echo message="android is not available" />
</ac:then>
</ac:if>
</project>
现在我们假设命名空间是在common.xml中定义的,因此同样会在我们的build.xml中导入。但这并没有发生。相反,我需要为我的build.xml包含xmlns:ac="antlib:net.sf.antcontrib" eacch。即我的 build.xml 应该如下所示
<project name="Build" basedir="." xmlns:ac="antlib:net.sf.antcontrib">
<import file="common.xml" />
<ac:if>
<ac:not>
<isset property="android.available" />
</ac:not>
<ac:then>
<echo message="android is not available" />
</ac:then>
</ac:if>
</project>
有没有办法在我们所有的 build.xml 中执行此命名空间导入,而不是在所有 build.xml 中定义相同的命名空间定义