Ear

說明

Jar 任務的延伸,特別處理應結束於企業應用程式檔案中的檔案。

(Ear 任務是指定 EAR 檔案特定配置的捷徑。相同的事情也可以透過在 ZipJar 任務中使用 zipfilesets 的 prefixfullpath 屬性來完成。)

Zip 任務的延伸 zipfileset 元素 (具有 prefixfullpathsrc 屬性) 可用於 Ear 任務。

請注意,zip 格式允許多個具有相同完整限定名稱的檔案存在於單一檔案中。這已被記錄為會對不知情的使用者造成各種問題。如果您想要避免這種行為,您必須將 duplicate 屬性設定為預設值 add 以外的值。

參數

屬性 說明 必要
destfile 要建立的 EAR 檔案。
appxml 要使用的部署描述符 (META-INF/application.xml)。 是,除非 update 設定為 true
basedir 要將檔案加入 jar 的目錄。
compress 不僅儲存資料,還會壓縮它們。除非您將 keepcompression 屬性設定為 false,否則這將套用於整個檔案,而不僅是您在更新時新增的檔案。 否;預設為 true
keepcompression 對於來自現有檔案的項目 (例如巢狀的 zipfileset 或在更新檔案時),保留壓縮,就像它最初的樣子,而不是使用 compress 屬性。自 Apache Ant 1.6 起 否;預設為 false
encoding 要使用的檔案名稱字元編碼,在檔案中。不建議變更此值,因為建立的檔案很可能會無法被 Java 讀取。
請參閱 zip 任務頁面中的討論
否;預設為 UTF8
filesonly 僅儲存檔案項目。 否;預設為 false
includes 必須包含的檔案模式的逗號或空格分隔清單。 否;預設為全部 (**)
includesfile 檔案名稱。此檔案的每一行都被視為包含模式。
excludes 必須排除的檔案模式清單,以逗號或空白分隔。 否;預設為預設排除或無,如果 defaultexcludesno
excludesfile 檔案名稱。此檔案的每一行都被視為排除模式。
defaultexcludes 表示是否應使用預設排除 (yes|no)。 否;預設為 yes
manifest 要使用的清單檔。
filesetmanifest zipfilesetzipgroupfileset 檔案中找到清單檔時的行為。有效值為 skipmergemergewithoutmainmerge 會將所有清單檔合併在一起,並將其合併到任何其他指定的清單檔中。mergewithoutmain 會合併清單檔的所有內容,但主區段除外。 否;預設為 skip
whenmanifestonly 沒有檔案符合時的行為。有效值為 failskipcreate 否;預設為 create
manifestencoding 當指定清單檔時,用於讀取 JAR 清單檔的編碼。 否;預設為預設 JVM 字元編碼
index 是否建立 索引清單 以加速類別載入。除非您使用巢狀 indexjars 元素指定其他 JAR,否則只有此 JAR 的內容才會包含在索引中。 否;預設為 false
indexMetaInf 是否將 META-INF 及其子目錄包含在索引中。如果 index 為 false,則不會產生任何效果。
Oracle 的 JAR 實作過去會略過 META-INF 目錄,而 Ant 也遵循此範例。此行為已在 Java 5 中變更。為了避免在 Java 1.4 或更早版本上使用 Ant 所產生的 JAR 發生問題,除非明確要求,否則 Ant 將不會包含 META-INF
自 Ant 1.8.0 起.
否;預設為 false
update 表示如果目標檔案已存在,是否要更新或覆寫它。 否;預設為 false
duplicate 找到重複檔案時的行為。有效值為 addpreservefail 否;預設為 add
roundup 檔案修改時間是否會四捨五入到下一偶數秒數。
Zip 檔案儲存檔案修改時間的精確度為 2 秒,因此時間會向上或向下取整數。如果您向下取整數,則在您重新執行工作時,檔案會永遠顯示為過期,因此預設值是向上取整數。向上取整數可能會導致其他類型的問題,例如網路檔案中的 JSP 看起來比預編譯的頁面稍新,導致預編譯失效。
自 Ant 1.6.2 起
否;預設為 true
層級 執行檔案壓縮時,非預設層級。有效值範圍從 0(無壓縮/最快)到 9(最大壓縮/最慢)。自 Ant 1.7 起
preserve0permissions 在更新檔案或從其他檔案新增項目時,Ant 會假設 Unix 權限值 0(任何人都不允許對檔案/目錄執行任何操作)表示權限尚未儲存,而不是實際權限,並會套用其自己的預設值。
如果您真的想要保留原始權限欄位,請將此屬性設定為 true自 Ant 1.8.0 起
否;預設為 false
useLanguageEncodingFlag 如果編碼為 UTF-8,是否設定語言編碼標記。如果編碼不是 UTF-8,此設定不會有任何影響。自 Ant 1.8.0 起
請參閱 zip 任務頁面中的討論
否;預設值為 true
createUnicodeExtraFields 是否建立 Unicode 額外欄位,以將檔案名稱再次儲存在項目元資料中。
可能的值為 neveralwaysnot-encodeable,後者僅在無法使用指定編碼編碼檔案名稱時,才會新增 Unicode 額外欄位。自 Ant 1.8.0 起
請參閱 zip 任務頁面中的討論
否;預設值為 never
fallbacktoUTF8 如果無法使用指定編碼編碼檔案名稱,是否使用 UTF-8 和語言編碼標記,而不是指定的編碼。自 Ant 1.8.0 起
請參閱 zip 任務頁面中的討論
否;預設為 false
mergeClassPathAttributes 是否合併在不同清單中找到的 Class-Path 屬性(如果合併清單)。如果為 false,則只會保留最後一個合併清單的屬性。自 Ant 1.8.0 起
除非您也將 flattenAttributes 設定為 true,否則可能會導致清單包含多個 Class-Path 屬性,這會違反清單規格。
否;預設為 false
flattenAttributes 是否將區段中出現多次的屬性(這只會發生在 Class-Path 屬性)合併成單一屬性。自 Ant 1.8.0 起 否;預設為 false
zip64Mode 何時對項目使用 Zip64 延伸。可能的值為 neveralwaysas-needed自 Ant 1.9.1 起
請參閱 zip 任務頁面中的討論
否;預設值為 never
modificationtime 將所有儲存的檔案修改時間設定為指定時間。這可以是數字(解譯為自 1970-01-01T00:00:00Z 以來的毫秒數),或可以解析為 ISO 8601 時間戳記(含選用時區)的字串。自 Ant 1.10.2 起

指定為巢狀元素的參數

metainf

巢狀 metainf 元素指定 FileSet。此檔案集中所包含的所有檔案最後都會出現在 ear 檔案的 META-INF 目錄中。如果此檔案集包含名為 MANIFEST.MF 的檔案,則會忽略該檔案,且您會收到警告。

manifest、indexjars、service

這些繼承自 <jar>

範例

<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
  <fileset dir="${build.dir}" includes="*.jar,*.war"/>
</ear>