2014-06-09 31 views
1

我對使用ant目標編寫構建文件的知識很少。 我是facilng的問題是我想有一個生成文件,如果滿足給定的條件,應該導入其他ant構建文件。 假設在下面的代碼中,如果$ {myresult}設置爲true,那麼應該使用postgreswebtest.xml,否則應該使用mysqlwebtest.xml。 所以我試圖用下面的代碼來實現這一點。如何在其他構建文件目標中導入一個ant構建文件

<?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

可能重複的[Ant導入不起作用](http://stackoverflow.com/questions/26681784/ant-import-doesnt-work) – kenorb

回答

1

,您可以改用ant螞蟻的任務,作爲行爲如果它包含提供的構建文件。有關更多詳細信息,請參閱:https://ant.apache.org/manual/Tasks/ant.html

With ant您可以提供默認目標以便運行。

使用這種方法,它將有條件地評估和導入您的「構建」目標中的文件。

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