我对使用 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:仅允许作为顶级任务导入
有人可以帮我解决一下吗
您可以使用 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>
我是一名优秀的程序员,十分优秀!