這個(gè)標(biāo)簽尋找src目錄中以.java為擴(kuò)展名的所有文件,并對它們調(diào)用javac編譯器,從而在相同的目錄中生成類文件。當(dāng)然,將類文件放在一個(gè)單獨(dú)的目錄結(jié)構(gòu)中通常會更清晰;可以通過添加destdir屬性來讓Ant做到這點(diǎn)。其他有用的屬性包括:classpath:等價(jià)于javac的-classpath選項(xiàng)。debug="true":指示編譯器應(yīng)該帶調(diào)試信息編譯源文件。javac任務(wù)的一個(gè)重" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Ant tutorial(2)

系統(tǒng) 1758 0

編譯 Java 代碼的任務(wù)的編寫方式:
??????????????? <javac srcdir="src"/>
這個(gè)標(biāo)簽尋找 src 目錄中以 .java 為擴(kuò)展名的所有文件,并對它們調(diào)用 javac 編譯器,從而在相同的目錄中生成類文件。當(dāng)然,將類文件放在一個(gè)單獨(dú)的目錄結(jié)構(gòu)中通常會更清晰;可以通過添加 destdir 屬性來讓 Ant 做到這點(diǎn)。其他有用的屬性包括:

classpath :等價(jià)于 javac -classpath 選項(xiàng)。

debug="true" :指示編譯器應(yīng)該帶調(diào)試信息編譯源文件。

javac 任務(wù)的一個(gè)重要特點(diǎn)在于,它僅編譯那些它認(rèn)為需要編譯的源文件。如果某個(gè)類文件已經(jīng)存在,并且對應(yīng)的源文件自從該類文件生成以來還沒有改變過,那么該源文件就不會被重新編譯。 javac 任務(wù)的輸出顯示了實(shí)際被編譯的源文件的數(shù)目。編寫一個(gè) clean 目標(biāo)來從目標(biāo)目錄移除生成的任何類文件是個(gè)很好的習(xí)慣。如果想要確保所有源文件都已編譯,就可以使用這個(gè)任務(wù)。這種行為刻畫了 Ant 的許多任務(wù)的特點(diǎn):如果某個(gè)任務(wù)能夠確定所請求的操作不需要執(zhí)行,那么該操作就會被跳過。

Ant javac 任務(wù)的默認(rèn)行為是調(diào)用運(yùn)行 Ant 本身的任何 JVM 的標(biāo)準(zhǔn)編譯器。然而,有時(shí)您可能想要單獨(dú)地調(diào)用編譯器 —— 例如當(dāng)你希望指定編譯器的某些內(nèi)存選項(xiàng),或者需要使用一種不同級別的編譯器的時(shí)候。為實(shí)現(xiàn)這個(gè)目的,只需將 javac fork 屬性設(shè)置為 true ,比如像下面這樣:

<javac srcdir="src" fork="true"/>

如果想要指定一個(gè)不同的 javac 可執(zhí)行文件,并向它傳遞一個(gè)最大內(nèi)存設(shè)置,可以像下面這樣做:

??? <javac srcdir="src" fork="true" executable="d:\sdk141\bin\javac"

memoryMaximumSize="<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="128" unitname="m">128m</chmetcnv>"/>

在編譯 Java 源文件之后,結(jié)果類文件通常被打包到一個(gè) JAR 文件中,這個(gè)文件類似 zip 歸檔文件。每個(gè) JAR 文件都包含一個(gè)清單文件,它可以指定該 JAR 文件的屬性。

下面是 Ant jar 任務(wù)的一個(gè)簡單使用例子:

<jar destfile="package.jar" basedir="classes"/>

這將創(chuàng)建一個(gè)名為 package.jar JAR 文件,并把 classes 目錄中的所有文件添加到其中( JAR 文件能夠包含任意類型的文件,而不只是類文件)。此處沒有指定清單文件,因此 Ant 將提供一個(gè)基本的清單文件。

manifest 屬性允許指定一個(gè)用作該 JAR 文件的清單的文件。清單文件的內(nèi)容還可以使用 manifest 任務(wù)在生成文件中指定。這個(gè)任務(wù)能夠像文件系統(tǒng)寫入一個(gè)清單文件,或者能夠?qū)嶋H嵌套在 jar 之內(nèi),以便一次性地創(chuàng)建清單文件和 JAR 文件。 例如:

< jar? destfile ="package.jar" ?basedir ="classes" >
??
< manifest >
????
< attribute? name ="Built-By" ?value ="${user.name}" />
????
< attribute? name ="Main-class" ?value ="package.Main" />
??
</ manifest >
</ jar >

在生成環(huán)境中使用當(dāng)前時(shí)間和日期,以某種方式標(biāo)記某個(gè)生成任務(wù)的輸出,以便記錄它是何時(shí)生成的,這經(jīng)常是可取的。這可能涉及編輯一個(gè)文件,以便插入一個(gè)字符串來指定日期和時(shí)間,或?qū)⑦@個(gè)信息合并到 JAR zip 文件的文件名中。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

?

這種需要是通過簡單但是非常有用的 tstamp 任務(wù)來解決的。這個(gè)任務(wù)通常在某次生成過程開始時(shí)調(diào)用,比如在一個(gè) init 目標(biāo)中。這個(gè)任務(wù)不需要屬性,許多情況下只需 <tstamp/> 就足夠了。

在調(diào)用 tstamp 任務(wù)之后,我們能夠根據(jù)日期命名該 JAR 文件,如下所示:

<jar destfile="package-${DSTAMP}.jar" basedir="classes"/>

因此,如果這個(gè)任務(wù)在 2006 3 8 日調(diào)用,該 JAR 文件將被命名為 package-20060308.jar

還可以配置 tstamp 任務(wù)來設(shè)置不同的屬性,應(yīng)用一個(gè)當(dāng)前時(shí)間之前或之后的時(shí)間偏移,或以不同的方式格式化該字符串。所有這些都是使用一個(gè)嵌套的 format 元素來完成的,如下所示:

< tstamp >
???
< format? property ="OFFSET_TIME"
???????????pattern
="HH:mm:ss"
???????????offset
="10" ?unit ="minute" />
</ tstamp >

上面的清單將 OFFSET_TIME 屬性設(shè)置為距離當(dāng)前時(shí)間 10 分鐘之后的小時(shí)數(shù)、分鐘數(shù)和秒數(shù)。

用于定義格式字符串的字符與 java.text.SimpleDateFormat 類所定義的那些格式字符相同。

    
      

下面將把這些代碼片斷組合成一個(gè)完整的生成文件,它將編譯 src 目錄下的所有源代碼,將結(jié)果類文件放在 build 目錄下,然后把所有類文件打包到 dist 目錄中的一個(gè) JAR 文件中。要自己試驗(yàn)這個(gè)生成文件,您所需要的就是包含一個(gè)或多個(gè) Java 源代碼文件的 src 目錄 —— 這個(gè)目錄可以包含從簡單的“ Hell World ”程序到來自某個(gè)現(xiàn)有項(xiàng)目的大量源文件的任何內(nèi)容。如果需要向 Java classpath 添加 JAR 文件或其他任何內(nèi)容,以便成功地編譯源代碼,您只需在 javac 任務(wù)中為其添加一個(gè) classpath 屬性:

<? xml?version="1.0" ?>
< project? default ="dist" ?name ="Project?Argon" >
?????
< description > A?simple?Java?project </ description > ??

????
< property? name ="srcDir" ?location ="src" />
????
< property? name ="buildDir" ?location ="build" />
????
< property? name ="distDir" ?location ="dist" />

????
< target? name ="init" >
???????
< tstamp />
???????
< mkdir? dir ="${buildDir}" />
???????
< mkdir? dir ="${distDir}" />
????
</ target >

????
< target? name ="compile" ?depends ="init" >
???????
< javac? srcdir ="${srcDir}" ?destdir ="${buildDir}" />
????
</ target >

????
< target? name ="dist" ?depends ="compile" >
???????
< jar? destfile ="${distDir}/package-${DSTAMP}.jar" ?basedir ="${buildDir}" >
?????????
< manifest >
???????????
< attribute? name ="Built-By" ?value ="${user.name}" />
???????????
< attribute? name ="Main-Class" ?value ="package.Main" />
?????????
</ manifest >
???????
</ jar >
???????
< jar? destfile ="${distDir}/package-src-${DSTAMP}.jar" ?basedir ="${srcDir}" />
????
</ target >

????
< target? name ="clean" >
??????
< delete? dir ="${buildDir}" />
??????
< delete? dir ="${distDir}" />
????
</ target >
</ project >

下面是使用該文件執(zhí)行的某次生成過程的示例輸出(您得到的輸出可能不一樣,具體取決于 src 目錄的內(nèi)容):

Buildfile:?build.xml

init:
????[mkdir]?Created?dir:?E:\tutorial\javaexample\build
????[mkdir]?Created?dir:?E:\tutorial\javaexample\dist

compile:
????[javac]?Compiling?10?source?files?to?E:\tutorial\javaexample\build

dist:
??????[jar]?Building?jar:?E:\tutorial\javaexample\dist\package-20031217.jar
??????[jar]?Building?jar:?E:\tutorial\javaexample\dist\package-src-20031217.jar

BUILD?SUCCESSFUL
Total?time:?5?seconds

注意 JAR 文件是根據(jù)當(dāng)前日期來命名的,并且為應(yīng)用程序的主類設(shè)置了一個(gè)清單條目,以便主類能夠通過一個(gè)簡單的命令 java -jar package-20031217.jar 來直接運(yùn)行。我們還創(chuàng)建了一個(gè) JAR 文件,它僅包含項(xiàng)目的源代碼。

?

?

?

?

?

?

Ant tutorial(2)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品一国产精品免费 | 999在线观看视频 | 国产亚洲精彩视频 | 成人a毛片手机免费播放 | 国产一区二区三区四区在线 | 亚洲激情综合 | 欧美综合图片 | 国内精品免费网站牛牛 | 天天操天天操天天操香蕉 | 天天干天天爽天天操 | baoyu777永久免费视频 | 草草在线观看 | 高清不卡视频 | 美女性色 | 天天干视频网站 | 色爱区综合激情五月综合色 | a毛片基地 | 久久久www成人免费精品 | 久 在线播放 | 日本高清在线精品一区二区三区 | 亚洲国产aaa毛片无费看 | 色拍自拍亚洲综合在线 | 有色视频在线观看 | 99热久久精品首页 | 国产特级毛片 | 亚洲国产欧美日韩一区二区 | 欧美 日本| 99热久久这里只有精品7 | 午夜性色福利视频在线视频 | 亚洲成a人v在线观看 | 日本一本一道久久香蕉免费 | 91久久九九精品国产综合 | 国产一级毛片欧美视频 | 色综合久久综合网欧美综合网 | 91尤物在线视频 | 国产区视频在线观看 | 天天摸夜夜摸夜夜狠狠摸 | 久久r视频 | 久久久99精品免费观看 | 天天做.天天爱.天天综合网 | 99热最新在线观看 |