Ant內建任務之ant

2021-08-14 08:42:25 字數 1232 閱讀 8587

ant是ant的內建任務,可以用來執行指定的構建檔案,所以可以用來構建子專案。如果呼叫的是同乙個構建檔案,那麼就必須在target中使用ant。

antfile:使用的構建檔案,預設為build.xml(其路徑為相對於dir屬性所在的目錄)。如果沒有配置antfle屬性,會使用dir屬性指定的目錄下的build.xml。

dir:作為新的project的basedir的目錄(在usenativebasedir設定為false時)。如果inheritall設定為true,預設值為當前project的basedir,否則沒有預設值。dir的值會覆蓋新的project的basedir屬性。

target:新的project需要執行的target,如果沒有設定,預設為新的project的預設target。

output:寫入ant輸出的檔名。如果設定了dir屬性,檔案位置就是相對於dir所在目錄,否則就是當前project的基礎目錄。

inheritall:如果為true,會將所有屬性傳遞到新的project,預設為true。如果為false,那麼只有命令列中的引數會被傳遞到新的porject中。無論true還是false傳入新project的屬性都會覆蓋新的project中的屬性。

inheritrefs:如果為true,會將所有引用傳遞到新的project,預設為false。

usenativebasedir:如果設定為true,在命令列執行時會使用子構建的basedir。從ant1.8.0起預設為false。

可以通過在當前project的ant元素中巢狀property標籤來給新的project設定屬性,無論inheritall為true還是false,這些屬性都會傳遞給新的project。可以通過這種方式對新的project進行引數的初始化。使用這種方式對同乙個引數進行設定時,最後一次設定的值會生效。通過命令列傳入的引數不能通過這種方式進行覆蓋。ant1.6起,可以通過propertyset設定一組屬性。

從ant1.8.0開始,巢狀的ant結構也是一樣,如果構建檔案a通過ant呼叫了b且通過巢狀property設定了屬性,而b中又通過ant呼叫了c,那麼a的ant中巢狀的property屬性對於c也是可見的。

從ant1.6.3開始,如果要執行多個target,可以通過在ant中巢狀多個target來取代target屬性。這些target會按照指定的順序執行。

Ant內建任務之cab

cab是ant內建任務,用於生成微軟的歸檔檔案。它的呼叫類似於jar和zip。執行這個任務需要在可執行路徑上有外部的cabarc工具,這個工具是微軟提供的。cab是乙個隱式的檔案集,支援fileset的大部分屬性並且可以巢狀include exclude和patternset元素。如果巢狀了file...

Ant內建任務之length

length是ant內建任務,ant1.6.3引入,用於顯示或設定乙個字串 檔案 乙個或多個巢狀資源集合的長度,可以作為條件使用。property 要設定屬性的屬性名。如果不設定會將結果寫到日誌中,length作為條件時忽略。file 單個檔案。resource 單個資源。string 字串。mod...

Ant內建任務之loadfile

loadfile是ant內建屬性,是只處理檔案的特殊的loadresource。如果資源內容為空,就不會設定屬性。loadfile支援巢狀filterchain。srcfile 原始檔。property 要設定的屬性名稱。encoding 載入檔案使用的編碼。failonerror 失敗時是否停止構...