<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    聽風觀影,我的博客!

    我的博客日志!!!
    posts - 2, comments - 0, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    轉:交互式的ant 調用與自寫的Ant Task

    Posted on 2006-03-09 22:33 聽風觀影 閱讀(217) 評論(0)  編輯  收藏 所屬分類: ant
    寫完代碼生成的框架,少不了需要ant來調用。寫完之后值得一記的東西有三:
    一、《Ant--The Definitive Guide 2nd》是本不錯的cookbook

    二、與用戶進行交互式輸入而不是逼著用戶改build.xml

    下面的代碼運行時,ant會提問"What is the name of your POJO?",讓用戶輸入屬性PojoName的值。

    <input message="What is the name of your POJO (i.e. Person)?" addproperty="PojoName"/>
    三,寫Ant Task

    寫Ant Task其實很簡單,看看下面這篇Turtorial就可以了。

    http://ant.apache.org/manual/tutorial-writing-tasks.html

    上文可濃縮到三句話里:
    1.寫一個Java類,繼承于org.apache.tools.ant.Task。
    2.實現execute()方法,Ant就會進行調用。
    3.參數要從build.xml傳入時,Task類只需擁有同名的變量和setter函數,Ant就會為你注入。

    1.Ant Task的標準實現

    import org.apache.tools.ant.Task;public class HelloWorld extends Task{String msg;public void execute(){  System.out.println(msg);}public void setMsg(String msg){    this.msg = msg;}}
    將上面的文件編譯打包成helloworld.jar

    build.xml調用如下

    <target description="Use the Task">  
    <taskdef name="helloworld" classname="HelloWorld" classpath="helloworld.jar"/>  
    <helloworld msg="Hello World"/>
    </target>

    另外:
    1.取得build.xml中的公共變量和Target名稱

    String myProperty = getProject().getProperty("myProperty ");
    String targetName = getOwningTarget().getName();                     
               
    2.取得復合的屬性就要復雜一點,該模式可以擴展到比下面復雜得多的情況。
    <target>  
    <helloworld>     
    <message msg="Hello "/>     
    <message msg="World"/>  
    </helloworld>
    </target>

    1.先定義叫Message的內部類以表示Message節點,該類有一個msg屬性,同樣有一個setter函數,使其可以在build.xml中賦值

    public class Message extends Object{   
    public Message()  {}  
    String msg;  
    public void setMsg(String msg)  {   
    this.msg = msg;  
    }  
    public String getMsg() {    return msg;  }
    }

    2.再根據Ant的框架,定義給Helloworld注入message的createXXX函數和持有Message列表的messages對象,ant就會為你完成自動注入。

    Vector msgs = new Vector();
    public Message createMessage(){   
    Message msg = new Message();
    messages.add(msg);  
    return msg;
    }

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲乱色熟女一区二区三区蜜臀| 国产AV无码专区亚洲AWWW| 久久亚洲精品人成综合网| 精品一卡2卡三卡4卡免费视频| 亚洲а∨天堂久久精品| 美女一级毛片免费观看| 免费看男女下面日出水视频| 色视频在线观看免费| 亚洲中文字幕伊人久久无码| 国产午夜无码片免费| 亚洲国产精品第一区二区| 鲁丝片一区二区三区免费| 精品日韩亚洲AV无码一区二区三区| 久久精品成人免费观看| 亚洲成a人不卡在线观看| 久久久久久精品免费看SSS| 久久av无码专区亚洲av桃花岛| 免费观看AV片在线播放| 亚洲成av人片天堂网无码】| 亚洲成网777777国产精品| 97在线免费观看视频| 久久伊人久久亚洲综合| 欧亚精品一区三区免费| 免费的黄色的网站| 亚洲ⅴ国产v天堂a无码二区| 国产1024精品视频专区免费 | 亚洲精品一级无码鲁丝片| 一个人免费观看日本www视频| 亚洲AV永久青草无码精品| 国产片AV片永久免费观看| 香蕉视频免费在线播放| 亚洲va国产va天堂va久久| 成人免费看黄20分钟| 好猛好深好爽好硬免费视频| 亚洲性一级理论片在线观看| 无码欧精品亚洲日韩一区夜夜嗨 | 日本亚洲免费无线码| 国产亚洲视频在线观看| 亚洲va国产va天堂va久久| 在线视频免费观看www动漫| a级毛片毛片免费观看永久|