<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 聽風觀影 閱讀(216) 評論(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综合日韩| 亚洲jizzjizz少妇| 国产拍拍拍无码视频免费| 国产精品酒店视频免费看| 亚洲精品久久无码| 国产精品jizz在线观看免费| 亚洲女女女同性video| 国产成人亚洲精品青草天美| 国产免费AV片在线观看播放| 中文字幕第一页亚洲| 中文字幕在线免费看| 国产精一品亚洲二区在线播放| 国产免费一区二区视频| 亚洲精品视频在线观看免费| 免费H网站在线观看的| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲福利精品一区二区三区| 抽搐一进一出gif免费视频| 亚洲av日韩av无码| 国产1024精品视频专区免费| 色偷偷亚洲第一综合网| 亚洲精品国产成人片| jjizz全部免费看片| 亚洲色欲啪啪久久WWW综合网| 亚洲AV网站在线观看| 中文字幕av无码不卡免费| 久久亚洲精品中文字幕| 四虎影院免费视频| 99re6在线视频精品免费| 亚洲制服丝袜第一页| 免费一级肉体全黄毛片| 大地资源中文在线观看免费版| 亚洲毛片免费观看| 五月天婷亚洲天综合网精品偷| 免费观看男人吊女人视频| 国产精品亚洲精品青青青| 亚洲高清国产拍精品青青草原 | 亚洲日韩VA无码中文字幕| 无码国产精品一区二区免费式芒果| 国产午夜亚洲精品| 亚洲精品高清国产一线久久|