欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
ANT(1.6)高級特性:模塊化

ANT(1.6)高級特性:模塊化

發(fā)布時(shí)間:2006.03.10 05:33    來(lái)源:CSDN    作者:

ANT1.6)高級特性:模塊化

  <>
Ant
作為一種編程的輔助工具,可以看作與腳本一個(gè)級別的東西。寫(xiě)一個(gè)build.xml,用它來(lái)幫助你干各種小雜活,應該是一件很簡(jiǎn)單的事情。但是如果是一個(gè)很大的工程呢?如果你需要寫(xiě)很多的build.xml,那么與其他腳本語(yǔ)言一樣,由于維護和代碼重用的壓力,你必須考慮到一個(gè)因素:模塊化。在TheServerSide上面有一個(gè)討論是關(guān)于Ant1.6與模塊化的:Ant 1.6 - finally a real build tool http://www.theserverside.com/news/thread.tss?thread_id=25195。到1.6版為止,Ant已經(jīng)提供了很多Task,可以幫助實(shí)現Ant腳本的模塊化。

 

1.       Property

Property Task除了能夠定義單個(gè)的屬性,還可以從一個(gè)屬性定義文件定義多個(gè)property。把公用的屬性放到屬性文件中,各個(gè)build.xml中都載入此屬性文件,就可以避免在每個(gè)build.xml中重復定義這些屬性。

 

2.       AntCall, AntSubAnt

AntCall可以理解為簡(jiǎn)單的函數調用。舉一個(gè)例子就清楚了:

<target name=”commonTarget”>

       <echo message=”${test.param}” />

</target>

 

<target name=”callingTarget”>

       <antcall target="commonTarget">

              <param name="test.param" value="Modulation" />

       </antcall>

</target>

輸出結果如下圖所示:


從上面的例子可以看到,指明要調用的target,再通過(guò)<param>指明調用參數;在被調用的Target中,通過(guò)與引用property類(lèi)似的方式即可引用param的值。

至于Ant Target,也是調用別的Target,不過(guò)那個(gè)Target可以是在另外一個(gè)ant 文件中。至于SubAnt是什么?還不太清楚。

 

3.       MacroDef

AntCall很好用,不過(guò)當參數很多時(shí)要寫(xiě)很多的<param name=”” value=”” />起來(lái)很麻煩,如果你想偷懶,用MacroDef就行了。下面把上面的例子用MacroDef重寫(xiě):

       <macrodef name="showModule">

            <attribute name="test.param" default="NOT SET"/>

            <sequential>

                 <echo message="@{test.param}" />

            </sequential>

       </macrodef>

 

       <target name="testMacro">

              <showModule test.param="Modulation" />

       </target>

運行結果


從輸出可以看出,我們可以象系統提供的其他Task一樣引用showModule,的確簡(jiǎn)潔多了。定義一個(gè)Macro,首先定義此宏的attribute,包括attributename, default;然后在<sequential>標簽中定義此宏的所有操作。注意對attribute的引用是@{attr-name}!實(shí)際上,Ant還允許在attribute后面定義一組element,達到極高的動(dòng)態(tài)性。

 

4.       Import

<antcall><marcodef>可以達到類(lèi)似函數的效果,但是調用者和被調用者還是必須在同一個(gè)文件中。Ant1.6開(kāi)始引入Import Task,可以真正的實(shí)現代碼重用:屬性,Task 定義,Task, Macro。一個(gè)簡(jiǎn)單的例子:

 

common.xml

<?xml version="1.0" ?>

<project>

       <property name="project.name" value="Ant Modulazation" />

 

       <target name="commonTarget">

              <echo message="${test.param}" />

       </target>

      

       <macrodef name="showModule">

            <attribute name="test.param" default="NOT SET"/>

            <sequential>

                 <echo message="@{test.param}" />

            </sequential>

       </macrodef>

 

</project>

 

call.xml

<?xml version="1.0" ?>

<project name="testCommon" default="callingTarget">

       <import file="common.xml" />

      

       <target name="callingTarget">

              <antcall target="commonTarget">

                     <param name="test.param" value="Modulation" />

              </antcall>

       </target>

 

       <target name="testMacro">

              <showModule test.param="Modulation" />

       </target>

</project>

運行結果:


注意:在common.xml中,不能對project元素設置屬性;另外,不要試圖使用重名的property,target以獲取覆蓋的效果,因為Ant畢竟不是編程語(yǔ)言!

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
ant+jmeter+jinkens 持續集成
使用 Ant 自動(dòng)生成項目構建版本
ant macrodef定義
ant中depends調用任務(wù)和antcall調用任務(wù)的區別
再回來(lái)改造 tomcat
【為什么要用 @param注解】
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久