对 Jar 任务的扩展,对应该最终出现在企业应用程序存档中的文件进行特殊处理。
(Ear
任务是指定 EAR 文件特定布局的快捷方式。使用 Zip
或 Jar
任务中 zipfileset 的 prefix 和 fullpath 属性也可以实现相同的效果。)
Ear
任务中可以使用 Zip
任务的扩展 zipfileset 元素(具有属性 prefix、fullpath 和 src)。
请注意,zip 格式允许在单个存档中存在多个具有相同完全限定名称的文件。这已被记录为会导致对毫无戒心的用户造成各种问题。如果您希望避免这种行为,则必须将 duplicate 属性设置为除默认值 add
之外的值。
属性 | 描述 | 必需 |
---|---|---|
destfile | 要创建的 EAR 文件。 | 是 |
appxml | 要使用的部署描述符 (META-INF/application.xml)。 | 是,除非 update 设置为 true |
basedir | 要从中打包文件的目录。 | 否 |
compress | 不仅存储数据,还要压缩它们。除非您将 keepcompression 属性设置为 false,否则这将应用于整个存档,而不仅仅是您在更新时添加的文件。 |
否;默认为 true |
keepcompression | 对于来自现有存档(如嵌套的 zipfileset 或更新存档时)的条目,保留其原始压缩方式,而不是使用 compress 属性。自 Apache Ant 1.6 起 |
否;默认为 false |
encoding | 用于存档中文件名字符编码。不建议更改此值,因为否则创建的存档很可能无法被 Java 读取。 另请参见 zip 任务页面中的讨论 |
否;默认为 UTF8 |
filesonly | 仅存储文件条目。 | 否;默认为 false |
includes | 必须包含的文件模式的逗号或空格分隔列表。 | 否;默认为全部 (**) |
includesfile | 文件名称。此文件的每一行都被视为包含模式。 | 否 |
excludes | 必须排除的文件模式的逗号或空格分隔列表。 | 否;默认为默认排除项,如果 defaultexcludes 为 no则为无 |
excludesfile | 文件名称。此文件的每一行都被视为排除模式。 | 否 |
defaultexcludes | 指示是否使用默认排除项 (yes|no)。 |
否;默认为 yes |
manifest | 要使用的清单文件。 | 否 |
filesetmanifest | 在 zipfileset 或 zipgroupfileset 文件中找到清单文件时的行为。有效值为 skip、 merge和 mergewithoutmain。 merge将合并所有清单,并将此合并到任何其他指定的清单中。 mergewithoutmain合并所有内容,但清单的主部分除外。 |
否;默认为 skip |
whenmanifestonly | 当没有文件匹配时的行为。有效值为 fail、 skip和 create。 |
否;默认为 create |
manifestencoding | 用于读取 JAR 清单的编码,当指定清单文件时。 | 否;默认为默认 JVM 字符编码 |
index | 是否创建 索引列表 以加快类加载速度。除非您使用嵌套的 indexjars 元素指定其他 jar,否则只有此 jar 的内容将包含在索引中。 |
否;默认为 false |
indexMetaInf | 是否将 META-INF 及其子目录包含在索引中。如果 index 为 false,则不起作用。 Oracle 的 jar 实现过去会跳过 META-INF 目录,Ant 遵循了这一示例。行为已随 Java 5 发生改变。为了避免 Ant 生成的 jar 在 Java 1.4 或更早版本上出现问题,Ant 不会包含 META-INF,除非明确要求。 自 Ant 1.8.0 起. |
否;默认为 false |
update | 指示如果目标文件已存在,则更新或覆盖它。 | 否;默认为 false |
duplicate | 找到重复文件时的行为。有效值为 add、 preserve和 fail。 |
否;默认为 add |
roundup | 文件修改时间是否将向上舍入到下一个偶数秒。 Zip 存档以 2 秒的粒度存储文件修改时间,因此时间将向上或向下舍入。如果您向下舍入,则每次重新运行任务时,存档似乎总是过时,因此默认情况下是向上舍入。向上舍入可能会导致其他类型的问题,例如 Web 存档中的 JSP 似乎比预编译页面略微更新,从而使预编译毫无用处。 自 Ant 1.6.2 起 |
否;默认为 true |
level | 执行文件压缩的非默认级别。有效值范围从 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 扩展字段以在条目元数据中第二次存储文件名。 可能的值为 never、 always和 not-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 扩展。可能的值为 never、 always和 as-needed。自 Ant 1.9.1 起。 另请参见 zip 任务页面中的讨论 |
否;默认为 never |
modificationtime | 将所有存储的文件修改时间设置为给定时间。这可以是解释为自 1970-01-01T00:00:00Z 以来的毫秒数,也可以是可解析为具有可选时区的 ISO 8601 时间戳的字符串。自 Ant 1.10.2 起。 | 否 |
嵌套的 metainf
元素指定一个 文件集。此文件集中包含的所有文件最终将出现在 ear 文件的 META-INF 目录中。如果此文件集包含名为 MANIFEST.MF 的文件,则会忽略该文件,您将收到警告。
这些从 <jar> 继承而来
<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml"> <fileset dir="${build.dir}" includes="*.jar,*.war"/> </ear>