簡體   English   中英

使用Ant條件標記

[英]Using Ant condition tag

我想做這樣的事情

<target name="init" description="Create build directories.
    >
    <mkdir dir="bin" />
    <mkdir dir="dist" />
            <!-- Check for the presence of dependent JARs -->
            <condition property="dependent.files.available">
               <and>
                 <available file="../../xx.jar" />
                 <available file="../../yy.jar" />
               </and>
            </condition>
</target>

<!--- Compile -->
<target name="compile" depends="init" description="Compile java sources 
    and create classes">
         <if>
           <isset property="dependent.files.available"/>
             <then>
       <javac srcdir="src" destdir="bin" classpathref="ext_jar_classpath"/>
             </then>
             <else>
                <echo message="Either xx.jar or yy.jar not found"/>
             </else>
         </if>  
</target>

當我嘗試編譯代碼時,它給了我以下錯誤

Problem: failed to create task or type if
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place

這是正確的做法嗎?

您需要在運行時看到ant-contrib jar,或者按照鏈接中的描述正確配置它。

事情歸結為讓Ant加載任務定義,所以如果你把ant-contrib放在ant / lib中,你就需要了

<taskdef resource="net/sf/antcontrib/antcontrib.properties"/>

只是一個建議。 使用if /除非ant-contrib( http://ant.apache.org/manual/targets.html ),你可以使用ant 1.9.1以后做同樣的事情

你的目標是

<target name="init" description="Create build directories.
    >
    <mkdir dir="bin" />
    <mkdir dir="dist" />
            <!-- Check for the presence of dependent JARs -->
            <condition property="dependent.files.available">
               <and>
                 <available file="../../xx.jar" />
                 <available file="../../yy.jar" />
               </and>
            </condition>
</target>

<!--- Compile -->
<target name="compile" depends="init" description="Compile java sources 
    and create classes" if="dependent.files.available">

       <javac srcdir="src" destdir="bin" classpathref="ext_jar_classpath"/>

</target>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM