在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Apache Ant自定義組件
Ant Telnet任務(wù)
Ant Javac任務(wù)
Apache Ant構(gòu)建文件-project標簽
Apache Ant任務(wù)失敗
Apache Ant目標-target標簽
Apache Ant API
Ant Condition任務(wù)
Ant過濾器任務(wù)
Ant Mkdir創(chuàng)建目錄任務(wù)
Ant休眠任務(wù)
Apache Ant入門程序(Hello World)
Apache Ant InputHandler接口
Ant JUnit任務(wù)
Apache Ant自定義組件
Apache Ant參數(shù)處理器
Apache Ant令牌過濾器
Apache Ant IDE集成
Ant Concat任務(wù)
Apache Ant安裝
ANT教程
Apache Ant類型
Ant EAR任務(wù)
Ant簡介
Ant長度任務(wù)
Ant Chmod任務(wù)
Ant LoadFile任務(wù)
Ant導(dǎo)入任務(wù)
Apache Ant If和Unless用法
Ant Gzip任務(wù)
Ant移動文件任務(wù)
Apache Ant Jar示例
Apache Ant任務(wù)-task標簽
Apache Ant監(jiān)聽器和記錄器
Ant AntStructure任務(wù)
Ant刪除任務(wù)
Apache Ant Java任務(wù)
Apache Ant basename任務(wù)
Ant Zip任務(wù)
Ant之外的Apache Ant任務(wù)
Ant Copy任務(wù)
Ant CVS任務(wù)
Apache Ant命令行參數(shù)
Apache Ant功能特性
Apache Ant屬性
Ant War任務(wù)

Apache Ant自定義組件

Ant允許根據(jù)的要求創(chuàng)建自定義組件。 自定義組件可以是條件,過濾器,選擇器等,并在ant核心api之外定義。

自定義組件的行為類似于Ant核心組件。

自定義組件是可以實現(xiàn)類和接口的普通Java類。 它看起來像編寫一個自定義任務(wù),通過settergetter方法定義屬性。

<typedef>元素用于將自定義組件實現(xiàn)到Ant核心中。

1. 創(chuàng)建自定義組件

這是一個三階段的過程。 首先創(chuàng)建一個Java類,然后定義<typedef>元素,然后在構(gòu)建文件中使用它。

示例

為條件創(chuàng)建Java類。參考以下代碼:

package com.yiibai;  
import org.apache.tools.ant.BuildException;  
import org.apache.tools.ant.taskdefs.condition.Condition;  
public class AllUpperCaseCondition implements Condition {  
    private String value;  
    // The setter for the "value" attribute  
    public void setValue(String value) {  
        this.value = value;  
    }  
    // This method evaluates the condition  
    public boolean eval() {  
        if (value == null) {  
            throw new BuildException("value attribute is not set");  
        }  
        return value.toUpperCase().equals(value);  
    }  
}

現(xiàn)在通過指定Java類來定義<typedef>。

<typedef name="alluppercase" classname="com.yiibai.AllUpperCaseCondition"  
                 classpath="test.com.yiibai"/>

通過這樣做,已經(jīng)成功創(chuàng)建了一個自定義元素<alluppercase>,它可以在項目中進一步使用。 請參閱build.xml文件。

文件:build.xml -

<project name="java-ant project" default="abc">     
    <typedef name="alluppercase" classname="com.yiibai.AllUpperCaseCondition"  
                 classpath="test.com.yiibai"/>  
    <target name="abc" >  
        <condition property="allupper">  
            <alluppercase value="THIS IS ALL UPPER CASE"/>  
        </condition>    
    </target>  
</project>

2. 自定義選擇器

在上面的例子中,我們創(chuàng)建了一個自定義條件元素?,F(xiàn)在將創(chuàng)建一個自定義選擇器。選擇器是數(shù)據(jù)類型并且要創(chuàng)建自定義選擇器,它必須實現(xiàn)

org.apache.tools.ant.types.selectors.FileSelector接口。 此接口具有單個方法isSeletected(File basedir,String filename,F(xiàn)ile file),必須重寫該方法。 下面給出了自定義選擇器的示例。

Java類

package com.yiibai;  
import java.io.File;  
import org.apache.tools.ant.types.selectors.FileSelector;  
public class JavaSelector implements FileSelector {  
    public boolean isSelected(File b, String filename, File f) {  
        return filename.toLowerCase().endsWith(".java");  
    }  
}

類型定義

<typedef name="javaselector" classname="com.yiibai.JavaSelector"  
            classpath="test"/>

文件:build.xml -

<project name="java-ant project" default="abc">     
    <target name="abc">  
        <typedef name="javaselector" classname="com.yiibai.JavaSelector"  
            classpath="test"/>  
        <copy todir="destdir">  
            <fileset dir="src">  
                <javaselector/>  
            </fileset>  
        </copy>  
    </target>  
</project>