Java 如何在其他构建文件目标中导入ant构建文件

Java 如何在其他构建文件目标中导入ant构建文件,java,xml,ant,Java,Xml,Ant,我对使用ant目标编写构建文件知之甚少。 我面临的问题是,我想要一个构建文件,如果满足给定条件,该文件应该导入其他ant构建文件。 对于下面代码中的假设,如果${myresult}设置为true,则应使用postgreswebtest.xml,否则应使用mysqlwebtest.xml。 因此,我尝试用以下代码实现这一点 <?xml version="1.0" encoding="utf-8" ?> <project name="webtest" default="build

我对使用ant目标编写构建文件知之甚少。 我面临的问题是,我想要一个构建文件,如果满足给定条件,该文件应该导入其他ant构建文件。 对于下面代码中的假设,如果${myresult}设置为true,则应使用postgreswebtest.xml,否则应使用mysqlwebtest.xml。 因此,我尝试用以下代码实现这一点

<?xml version="1.0" encoding="utf-8" ?>

<project name="webtest" default="build" basedir=".">
        <target name="build">
        <property name="DBTYPE" value="${arg0}" />
        <echo message="${DBTYPE}" />
        <condition property="myresult">
            <equals arg1="${DBTYPE}" arg2="postgres" />
        </condition>
        <echo message="${myresult}" />
        <if>
            <isset property="myresult"/>
            <then>
                <import file="postgreswebtest.xml" />
            </then>
            <else>
                <import file="mysqlwebtest.xml" />
            </else>
        </if>
    </target>
</project>   

但是当我执行这段代码时,会出现以下错误

生成失败: xml:21:仅允许作为顶级任务导入


有人能帮我解决这个问题吗

你可以使用
ant
ant任务,它的作用就像导入提供的构建文件一样。有关更多详细信息,请参阅

使用
ant
您还可以提供要运行的默认目标

使用这种方法,它将在“构建”目标中有条件地计算和导入文件

<if>
            <isset property="myresult"/>
            <then>
                <ant antfile="postgreswebtest.xml" />
            </then>
            <else>
                <ant antfile="mysqlwebtest.xml" />
            </else>
 </if>