我对使用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>
但是当我执行此代码时出现以下错误。
建筑失败: webtest.xml:21:仅允许导入作为顶级任务
有人可以帮我解决问题吗
答案 0 :(得分:1)
您可以使用ant
ant任务,其行为就像它正在提供提供的构建文件一样。有关详细信息,请参阅:https://ant.apache.org/manual/Tasks/ant.html。
使用ant
,您也可以提供默认目标。
通过这种方法,它将有条件地评估并导入您的“构建”内的文件。目标
<if>
<isset property="myresult"/>
<then>
<ant antfile="postgreswebtest.xml" />
</then>
<else>
<ant antfile="mysqlwebtest.xml" />
</else>
</if>