Apache Ant 任务 - 快速指南



Apache Ant 任务 - 简介

ANT 代表 **Another Neat** Tool(另一个简洁的工具)。它是由计算机软件开发公司 Apache 开发的基于 Java 的构建工具。在深入了解 Apache Ant 之前,让我们首先了解为什么我们需要构建工具。

构建工具的必要性

平均而言,开发人员会花费大量时间执行诸如构建和部署之类的日常任务,其中包括:

  • 编译代码

  • 打包二进制文件

  • 将二进制文件部署到测试服务器

  • 测试更改

  • 将代码从一个位置复制到另一个位置

为了自动化和简化上述任务,Apache Ant 非常有用。它是一个操作系统构建和部署工具,可以从命令行执行。Ant 任务简化了操作的执行。

Apache Ant 的历史

Ant 由软件开发人员 James Duncan Davidson 创建,他也是 Web 服务器应用程序 Tomcat 的最初创建者。

Ant 最初用于构建 Tomcat,并作为 Tomcat 发行版的一部分捆绑在一起。

它源于与 Apache Make 工具相关的难题和复杂性。

它在 2000 年被推广为 Apache 的一个独立项目。截至 2021 年 10 月,Apache Ant 的最新版本为 **1.10.12**。

Apache Ant 的特性

Apache Ant 的特性如下:

  • 它是目前最完整的 Java 构建和部署工具。

  • 它是平台无关的,可以处理特定于平台的属性,例如文件分隔符。

  • 它可以用于执行特定于平台的任务,例如使用“touch”命令修改文件的修改时间。

  • Ant 脚本使用纯 XML 编写。如果您已经熟悉 XML,那么您可以很快学会 Ant。

  • Ant 擅长自动化复杂的重复性任务。

  • Ant 带有一长串预定义的任务。

  • Ant 提供了一个接口来开发自定义任务。

  • Ant 可以轻松地从命令行调用,并且可以与免费和商业 IDE 集成。

Apache Ant 任务 - 环境设置

Apache Ant 根据 Apache 软件许可证分发,这是一个由开放源代码倡议认证的成熟的开放源代码许可证。

最新的 Apache Ant 版本,包括其完整的源代码、类文件和文档,可以在 https://ant.apache.org 找到。

安装 Apache Ant

假设您已经在计算机上下载并安装了 Java 开发工具包 (JDK)。如果没有,请按照 file:///C:/java/java_environment_setup.htm 中提供的说明操作。

  • 确保 JAVA_HOME 环境变量设置为 JDK 安装的文件夹。

  • https://ant.apache.org 下载二进制文件。

  • 使用 Winzip、winRAR、7-zip 或类似工具将 zip 文件解压缩到方便的位置 c:\folder。

  • 创建一个名为 **ANT_HOME** 的新环境变量,指向 Ant 安装文件夹。在本例中,它是 **c:\apache-ant-1.10.12-bin** 文件夹。

  • 将 Apache Ant 批处理文件的路径添加到 PATH 环境变量。在本例中,这将是 **c:\apache-ant-1.10.12-bin\bin** 文件夹。

验证安装

要在您的计算机上验证 Apache Ant 的安装是否成功,请在命令提示符中键入 ant。

您应该看到如下所示的输出:

C:\>ant -version
Apache Ant(TM) version 1.10.12 compiled on October 13 2021

如果您没有看到上述输出,请验证您是否已正确执行安装步骤。

安装 Eclipse

本教程还介绍了 Ant 与 Eclipse 集成开发环境 (IDE) 的集成。因此,如果您尚未安装 Eclipse,请下载并安装 Eclipse。

安装 Eclipse 的步骤

  • www.eclipse.org 下载最新的 Eclipse 二进制文件。

  • 将 Eclipse 二进制文件解压缩到方便的位置,例如 c:\folder。

  • 从 c:\eclipse\eclipse.exe 运行 Eclipse。

Apache Ant 任务 - BaseName

描述

Basename 任务确定指定文件/目录的基本名称,同时如果传递了后缀则将其移除。对于文件的完整路径,使用文件名。对于目录路径,使用最后一个目录的名称。

属性

序号 属性和描述
1

File

获取基本名称的路径。(必填)

2

Property

要设置的属性名称。(必填)

3

Suffix

要从生成的基名称中删除的后缀(带或不带 .)。(可选)

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <basename property="cmdname" file="D:/usr/local/application.exe"
         suffix=".exe"/>
      <echo message="${cmdname}"></echo>
   </target>
</project>

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [echo] application

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - GZip

描述

Gzip 任务基于 GZip、BZip2 或 XZ 算法创建存档。只有在不存在输出文件或源文件较新时才会生成输出文件。

属性

序号 属性和描述
1

src

要 gzip/bzip/xz 的文件/集合。(必填)

2

Destfile

要创建的目标文件。(必填)

示例

用法

创建包含以下内容的 build.xml

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <gzip src="test.txt" destfile="text.gz" />
      <echo>File archived.</echo>
   </target>
</project>

输出

在同一文件夹中创建一个包含一些内容的 text.txt 文件。现在,在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
     [gzip] Building: F:\tutorialspoint\ant\text.gz
     [echo] File archived.

BUILD SUCCESSFUL
Total time: 0 seconds

您可以验证已创建的 text.gz 文件。

Apache Ant 任务 - GUnzip

描述

Gunzip 任务使用 GZip、BZip2 或 XZ 算法提取存档。只有在不存在输出文件或源资源较新时才会生成输出文件。如果省略 dest,则使用 src 的父目录。

属性

序号 属性和描述
1

src

要展开的文件/集合。(必填)

2

Dest

目标文件或目录。(可选)

示例

用法

创建包含以下内容的 build.xml

<?xml version="1.0"?>
   <project name="TutorialPoint" default="info">
   <target name="info">
      <gunzip src="text.gz" dest="text.txt"/>
      <echo>File extracted.</echo>
   </target>
</project>

输出

让我们将 text.gz 文件解压缩到 text.txt。现在,在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [gunzip] Expanding text.gz to F:\tutorialspoint\ant\text.txt
   [echo] File extracted.

BUILD SUCCESSFUL
Total time: 0 seconds

您可以验证已创建的 text.txt 文件。

Apache Ant 任务 - Chmod

描述

Chmod 任务在 Unix 上运行,其功能类似于 chmod 命令。它更改文件或指定目录内所有文件的权限。

属性

序号 属性和描述
1

File

必须更改其权限的文件或单个目录。(必填)

2

Dir

包含必须更改其权限的文件的目录。(必填)

3

Perm

新的权限。(必填)

4

Includes

必须包含的文件模式的逗号或空格分隔列表。(可选)

5

Excludes

必须排除的文件模式的逗号或空格分隔列表。(可选)

6

Defaultexcludes

指示是否应使用默认排除项 (yes|no)。(可选)。默认为 yes。

7

Parallel

使用单个 chmod 命令处理所有指定的文件。(可选)。默认为 true。

8

Type

文件、目录或两者之一。如果设置为文件,则仅更改普通文件的权限。如果设置为目录,则仅考虑目录。(可选)。默认为文件。

9

Maxparallel

通过一次最多传递这么多源文件来限制并行度。将其设置为负整数表示无限。(可选)。默认为无限。

10

Verbose

是否在执行后打印摘要。(可选)。默认为 false。

11

OS

可在其上执行命令的操作系统列表。(可选)

12

Osfamily

使用的操作系统系列。(可选)。默认为 Unix。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <chmod file="start.sh" perm="ugo+rx"/>
   </target>
</project>

以上脚本使 start.sh 在 Unix 机器上可读和可执行。

Apache Ant 任务 - Concat

描述

Concat 任务将一个或多个资源连接到单个文件或控制台。除非资源列表为空且 ignoreempty 标志为 true,否则目标文件在不存在时将被创建。

属性

序号 属性和描述
1

Destfile

连接流的目标文件。如果未指定,则将使用控制台。

2

Append

指定是否应追加 destfile 指定的文件。

3

Overwrite

指定是否应写入 destfile 指定的文件,即使它比所有源文件更新。

4

ForceReadonly

覆盖只读目标文件。

5

Encoding

指定输入文件的编码。

6

Outputencoding

写入输出文件时使用的编码。

7

Fixlastline

指定是否检查每个连接的文件是否以换行符结尾。如果此属性为 yes,则如果文件没有以换行符结尾,则会将换行符追加到流中。

8

EOL

指定 fixlastline 属性使用的换行符是什么。

9

Binary

如果此属性设置为 true,则任务将逐字节连接文件。如果此属性为 false,则由于字符编码问题,concat 通常不适用于二进制文件。如果此选项设置为 true,则必须设置 destfile 属性,并且任务不能使用嵌套文本。此外,属性 encoding、outputencoding、filelastline 不能使用。

10

Filterbeforeconcat

如果此属性设置为 true,则任务在应用 fixlastline 后将过滤器链应用于每个输入。如果此属性为 false,则 concat 将仅对已连接的输入应用一次过滤器链。标头和页脚的过滤不受此设置的影响。

11

Ignoreempty

指定如果源资源列表为空,是否应创建 destfile 指定的文件。

12

Resourcename

如果此任务作为资源公开,则指定报告的名称。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <concat>
         <fileset dir="messages" includes="*test*"/>
      </concat>
   </target>
</project>

以上脚本将读取 messages 文件夹并将名称中包含 test 的文件内容连接起来,并在控制台中显示它们。

输出

让我们在 messages 文件夹中创建一个 test.txt 文件,其内容为“Welcome to tutorialspoint.com”。现在,在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [concat] Welcome to tutorialspoint.com

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - Condition

描述

Condition 任务默认情况下将属性值设置为 true,如果条件为 true;否则,不设置属性。您可以通过指定 value 属性将值设置为默认值以外的其他值。

属性

序号 属性和描述
1

Property

要设置的属性名称。(必填)

2

Value

要设置的属性值。

3

Else

如果条件计算结果为 false,则要设置的属性值。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <condition property="isWindows">
      <os family="windows"/>
   </condition>
   <target name="info">
      <echo message="${isWindows}"></echo>
   </target>
</project>

以上脚本将根据底层操作系统是否为 Windows 设置一个变量 isWindows。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [echo] true

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - Copy

描述

Copy 任务将文件/资源集合复制到新的文件或目录。仅当源文件比目标文件新或目标文件不存在时才会复制文件。

属性

序号 属性和描述
1

File

要复制的文件。(必填)

2

Preservelastmodified

为复制的文件提供与原始源文件相同的上次修改时间。

3

目标文件

要复制到的文件。

4

目标目录

要复制到的目录。

5

Overwrite

即使目标文件较新,也要覆盖现有文件。

6

强制

覆盖只读目标文件。

7

过滤

指示复制过程中是否应使用全局构建文件过滤器进行令牌过滤。

8

扁平化

忽略源文件的目录结构,并将所有文件复制到由 todir 属性指定的目录中。

9

includeEmptyDirs

复制 FileSet 中包含的任何空目录。

10

Failonerror

如果为 false,则记录警告消息,但如果要复制的文件不存在,或者嵌套文件集之一指向不存在的目录,或者复制过程中发生错误,则不会停止构建。

11

静默

如果为 true 且 failonerror 为 false,则当要复制的文件不存在,或者嵌套文件集之一指向不存在的目录,或者复制过程中发生错误时,不记录警告消息。

12

Verbose

记录正在复制的文件。

13

Encoding

过滤复制文件时假定的编码。

14

Outputencoding

写入文件时使用的编码。

15

Enablemultiplemappings

如果为 true,则任务将处理给定源路径的所有映射。如果为 false,则任务将仅处理第一个文件或目录。此属性仅在存在映射器子元素时才相关。

16

粒度

在确定文件已过期之前要给予的毫秒级宽限时间。这是因为并非每个文件系统都支持将最后修改时间跟踪到毫秒级。如果源文件和目标文件位于时钟不同步的不同机器上,这也非常有用。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <copy file="text.txt" tofile="textcopy.txt"></copy>
   </target>
</project>

以上脚本将复制当前目录中的文件 text.txt 为 textcopy.txt。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [echo] Copying 1 file to F:\tutorialspoint\ant

BUILD SUCCESSFUL
Total time: 1 second

Apache Ant 任务 - 删除

描述

delete 任务删除单个文件、指定的目录及其所有文件和子目录,或由一个或多个资源集合指定的一组文件。

属性

序号 属性和描述
1

File

要删除的文件,指定为简单的文件名(如果文件存在于当前基目录中)、相对路径文件名或完整路径文件名。

2

目录

要删除的目录,包括其所有文件和子目录。

3

Verbose

是否显示每个已删除文件的名称。

4

静默

如果指定的文件或目录不存在,则不显示诊断消息。

5

Failonerror

控制错误(例如无法删除文件)是否停止构建或仅报告到屏幕。仅当 quiet 为 false 时才相关。

6

Includeemptydirs

使用文件集时是否删除空目录。

7

Deleteonexit

指示如果无法删除文件,是否使用 File#deleteOnExit()。这会导致 JVM 在 JVM 进程终止时尝试删除文件。

8

removeNotFollowedSymlinks

如果符号链接(不是它们链接到的文件/目录)由于 followSymlinks 为 false 或符号链接的最大数量太大而未被跟踪,是否应将其删除。

9

performGCOnFailedDelete

如果 Ant 无法删除文件或目录,它将重试该操作一次。如果此标志设置为 true,它将在重试删除之前执行垃圾回收。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <delete file="text.txt" verbose="true"></delete>
   </target>
</project>

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [delete] Deleting: F:\tutorialspoint\ant\text.txt

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - EAR

描述

ear 任务是 Jar 任务的扩展,它对应该最终出现在企业应用程序存档中的文件进行特殊处理。

属性

序号 属性和描述
1

Destfile

要创建的 EAR 文件。

2

app.xml

要使用的部署描述符 (META-INF/application.xml)。

3

基目录

从中打包文件的目录。

4

压缩

不仅存储数据,还压缩它们。除非您将 keep compression 属性设置为 false,否则这将应用于整个存档,而不仅仅是您在更新时添加的文件。

5

保持压缩

对于来自现有存档的条目(例如嵌套的 zipfilesets 或更新存档时),保留其原始压缩方式,而不是使用 compress 属性。

6

Encoding

用于存档内文件名的字符编码。

7

Filesonly

仅存储文件条目。

8

包含

必须包含的文件模式的逗号或空格分隔列表。

9

Includesfile

文件名。此文件的每一行都被视为包含模式。

10

Excludes

必须排除的文件模式的逗号或空格分隔列表。

11

Excludesfile

文件名。此文件的每一行都被视为排除模式。

12

Defaultexcludes

指示是否应使用默认排除项 (yes|no)。

13

清单

要使用的清单文件。

14

Filesetmanifest

在 zipfileset 或 zipgroupfileset 文件中找到清单文件时的行为。有效值为 skip、merge 和 mergewithoutmain。merge 将合并所有清单,并将此合并到任何其他指定的清单中。mergewithoutmain 合并所有内容,但清单的主要部分除外。

15

Whenmanifestonly

没有文件匹配时的行为。有效值为 fail、skip 和 create。

16

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

17

索引

是否创建索引列表以加快类加载速度。除非您使用嵌套的 indexjars 元素指定其他 jar,否则只有此 jar 的内容将包含在索引中。

18

IndexMetaInf

是否将 META-INF 及其子项包含在索引中。如果 index 为 false,则无效。Oracle 的 jar 实现过去会跳过 META-INF 目录,Ant 也遵循此示例。Java 5 已更改此行为。为了避免在 Java 1.4 或更早版本上使用 Ant 生成的 jar 出现问题,除非明确要求,否则 Ant 不会包含 META-INF。

19

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

20

更新

指示如果目标文件已存在,是否更新或覆盖它。

21

重复

找到重复文件时的行为。有效值为 add、preserve 和 fail。

22

舍入

文件修改时间是否将四舍五入到下一个偶数秒。

23

级别

应执行文件压缩的非默认级别。有效值范围为 0(无压缩/最快)到 9(最大压缩/最慢)。

24

Preserve0permissions

更新存档或添加来自不同存档的条目时,Ant 将假设 Unix 权限值为 0(没有人被允许对文件/目录执行任何操作)表示权限根本没有存储,而不是实际权限,并将改为应用其自己的默认值。

25

UseLanguageEncodingFlag

如果编码为 UTF-8,是否设置语言编码标志。如果编码不是 UTF-8,则此设置无效。

26

CreateUnicodeExtraFields

是否创建 Unicode 额外字段以第二次在条目的元数据中存储文件名。

27

FallbacktoUTF8

如果无法使用指定的编码对文件名进行编码,是否使用 UTF-8 和语言编码标志代替指定的编码。

28

MergeClassPathAttributes

是否合并不同清单中找到的 Class-Path 属性(如果合并清单)。如果为 false,则只保留最后合并的清单的属性。

29

FlattenAttributes

是否将某个部分中出现多次的属性(这只能发生在 Class-Path 属性中)合并到单个属性中。

30

Zip64Mode

何时对条目使用 Zip64 扩展。可能的值为 never、always 和 as-needed。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <property name="src.dir" value="src" />
   <property name="build.dir" value="build" />
   <target name="info">
      <ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
         <fileset dir="${build.dir}" includes="*.jar,*.war"/>
      </ear>
   </target>
</project>

以上脚本将在当前目录中创建一个名为 myapp.ear 的 ear 文件。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [ear] Building ear: F:\tutorialspoint\ant\build\myapp.ear

BUILD SUCCESSFUL
Total time: 1 second

Apache Ant 任务 - 失败

描述

fail 任务用于通过抛出 BuildException 来退出当前构建,也可以选择打印其他信息。异常的消息可以通过 message 属性或嵌套到元素中的字符数据来设置。

属性

序号 属性和描述
1

消息

关于构建退出原因的更多信息。

2

如果

只有在当前项目中存在给定名称的属性时才失败。

3

除非

只有在当前项目中不存在给定名称的属性时才失败。

4

状态

使用指定的状态代码退出;假设生成的异常未被捕获,则 JVM 将使用此状态退出。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <property name="build.dir" value="build" />
   <target name="info">
      <fail unless="src.dir"/>
   </target>
</project>

以上脚本将使构建失败,因为未设置 src.dir。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:

BUILD FAILED
F:\tutorialspoint\ant\build.xml:5: unless=src.dir

Total time: 0 seconds

Apache Ant 任务 - 导入

描述

import 任务将另一个构建文件导入项目。

属性

序号 属性和描述
1

File

要导入的文件。如果这是一个相对文件名,则将相对于导入文件解析文件名。注意:这与大多数其他 Ant 文件属性不同,在这些属性中,相对文件相对于 basedir 解析。

2

可选

如果为 true,则如果文件不存在,则不会停止构建。

3

作为

指定添加到目标名称之前的字首。

4

prefixSeparator

指定要在字首和目标名称之间使用的分隔符。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <import file="nested.xml" as="nested"/>
   <target name="info" depends="nested.echo">      
   </target>
</project>

以及具有以下内容的 nested.xml:

<project>
   <target name="setUp">
      <property name="build.dir" value="build"/>
   </target>
   <target name="echo" depends="setUp">
      <echo>build.dir is set as build</echo>
   </target>
</project>

以上脚本将在当前目录中创建一个名为 myapp.ear 的 ear 文件。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

setUp:

nested.echo:
   [echo] build.dir is set as build

info:

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - Java

描述

Java 任务在正在运行的 JVM 中执行 Java 类,或者如果使用 fork=true 指定,则分叉另一个 JVM;

属性

序号 属性和描述
1

类名

要执行的 Java 类。

2

Jar

要执行的 jar 文件的位置。如果选择此选项,则必须将 fork 设置为 true。

3

模块

要解析的初始模块或主模块(必须在清单中具有 Main-Class 条目)。如果选择此选项,则必须将 fork 设置为 true。

4

源文件

“.java”文件或包含带有 Java 源代码的 shebang 的文件的位置。设置此属性以运行 Java 单文件源程序,这是 Java 11 中引入的一项功能。如果选择此选项,则必须将 fork 设置为 true。

5

类路径

要使用的类路径。

6

Classpathref

要使用的类路径,作为对在其他地方定义的 Path 的引用。

7

模块路径

指定查找应用程序模块的位置。模块目录、模块文件或已展开模块的列表。

8

modulepathref

要使用的模块路径,作为对在其他地方定义的 Path 的引用。

9

分叉

如果启用,则会在另一个 JVM 中触发类执行。

10

生成

如果启用,则允许启动一个将比 Ant 存活更久的进程。要求 fork 为 true,并且与 timeout、input、output、error、result 属性不兼容。

11

源文件

“.java”文件或包含带有 Java 源代码的 shebang 的文件的位置。设置此属性以运行 Java 单文件源程序,这是 Java 11 中引入的一项功能。如果选择此选项,则必须将 fork 设置为 true。

12

jvm

用于调用 JVM 的命令。该命令由 java.lang.Runtime.exec() 解析。如果 fork 为 false,则忽略。

13

最大内存

分配给分叉的 JVM 的最大内存量,如果 fork 为 false,则忽略。

14

Failonerror

如果命令退出时返回码不为 0,则停止构建过程。

15

resultproperty

应将命令的返回码存储到的属性名称。仅当 failonerror 为 false 且 fork 为 true 时才需要关注。

16

目录

在其中调用 JVM 的目录,如果 fork 为 false,则忽略。

17

输出

要将输出写入的文件名。如果错误流也没有重定向到文件或属性,它将显示在此输出中。

18

错误

应将命令的标准错误重定向到的文件。

19

logerror

当您希望在 Ant 的日志中看到错误输出并且将输出重定向到文件/属性时,使用此属性。错误输出将不包含在输出文件/属性中。如果您使用 error 或 errorProperty 属性重定向错误,则此属性无效。

20

Append

是否应追加或覆盖输出和错误文件。

21

Outputproperty

应将命令的输出存储到的属性名称。除非错误流重定向到单独的文件或流,否则此属性将包含错误输出。

22

Errorproperty

应将命令的标准错误存储到的属性名称。

23

输入

从中获取已执行命令的标准输入的文件。此属性与 inputstring 属性互斥。

24

Inputstring

用作已执行命令的输入流的字符串。此属性与 input 属性互斥。

25

Newenvironment

指定新的环境变量时,不传播旧的环境。

26

超时

如果命令未在指定时间内完成(以毫秒为单位),则停止该命令。强烈建议仅在 fork 为 true 时使用此功能。

27

Clonevm

如果设置为 true,则所有系统属性和已派生 JVM 的 bootclasspath 将与运行 Ant 的 JVM 的相同。

28

Discardoutput

是否应完全丢弃输出。此设置与将输出重定向到文件或属性的任何设置都不兼容。如果将其设置为 true,则错误输出也将被丢弃,除非您将错误输出重定向到文件、属性或启用 logError。

29

Discarderror

是否应完全丢弃错误输出。此设置与将错误输出重定向到文件或属性以及 logError 的任何设置都不兼容。

示例

用法

使用以下内容创建 TestMessage.java:

public class TestMessage {
   public static void main(String[] args) {
      System.out.println("Welcome to tutorialspoint.com");
   }
}

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">      
      <java classname="TestMessage" classpath="."/>
   </target>
</project>

上述脚本将运行一个 Java 类文件以打印输出。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [java] Welcome to tutorialspoint.com

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - Javac

描述

Javac 任务编译 Java 源代码树。将递归扫描源目录和目标目录以查找要编译的 Java 源文件。只有没有相应 .class 文件或 .class 文件比 .java 文件旧的 .java 文件才会被编译。

属性

序号 属性和描述
1

Srcdir

Java 文件的位置。

2

Destdir

存储类文件的位置。

3

Includes

必须包含的文件模式的逗号或空格分隔列表。

4

Includesfile

文件名。该文件的每一行都被视为一个包含模式。

5

Excludes

必须排除的文件模式的逗号或空格分隔列表。

6

Excludesfile

文件名。此文件的每一行都被视为排除模式。

7

Defaultexcludes

指示是否应使用默认排除项 (yes|no)。

8

类路径

要使用的类路径。

9

Sourcepath

要使用的 sourcepath。要禁止 sourcepath 开关,请使用 sourcepath=""。

10

Bootclasspath

引导类文件的位置。

11

Classpathref

要使用的类路径,作为对其他地方定义的路径的引用。

12

Sourcepathref

要使用的 sourcepath,作为对其他地方定义的路径的引用。

13

Bootclasspathref

要使用的 bootstrapclasspath,作为对其他地方定义的路径的引用。

14

Extdirs

已安装扩展程序的位置。

15

Encoding

源文件的编码。

16

Nowarn

指示是否应将 -nowarn 开关传递给编译器。

17

调试

指示是否应使用调试信息编译源代码。如果设置为 off,则 -g:none 将传递给支持它的编译器的命令行(对于其他编译器,将不使用命令行参数)。如果设置为 true,则 debuglevel 属性的值将确定命令行参数。

18

Debuglevel

要附加到 -g 命令行开关的关键字列表。有效值为 none 或以下关键字的逗号分隔列表:lines、vars 和 source。

19

优化

指示是否应使用优化编译源代码。请注意,自 JDK 1.3 以来,Sun 的 javac 忽略了此标志(因为编译时优化是不必要的)。

20

弃用

指示是否应使用弃用信息编译源代码。

21

Verbose

要求编译器提供详细输出。

22

依赖

为支持此功能的编译器(jikes 和 classic)启用依赖项跟踪。

23

includeAntRuntime

是否在类路径中包含 Ant 运行时库。通常最好将其设置为 false,这样脚本的行为就不会对运行它的环境敏感。

24

includeJavaRuntime

是否在类路径中包含执行 JVM 的默认运行时库。

25

分叉

是否使用 JDK 编译器在外部执行 javac。

26

可执行文件

如果 fork 为 yes,则要使用的 javac 可执行文件的完整路径。

27

memoryInitialSize

如果 javac 在外部运行,则底层 JVM 的内存初始大小。(示例:83886080、81920k 或 80m)

28

memoryMaximumSize

如果 javac 在外部运行,则底层 JVM 的内存最大大小;否则忽略。(示例:83886080、81920k 或 80m)

29

Failonerror

指示编译错误是否会使构建失败。

30

Errorproperty

如果编译失败,则设置为 true 的属性。

31

编译器接受的 Java 语言特性,由 -source 命令行开关指定。有效的特性版本为 1.3、1.4、1.5 或 5 等。

32

目标

为特定 JVM 版本生成类文件(交叉编译)。

33

编译器

要使用的编译器实现。

34

listfiles

指示是否列出要编译的源文件。

35

TempDir

Ant 应放置临时文件的位置。仅当任务被派生且命令行参数长度超过 4 kB 时才使用。

36

updatedProperty

如果编译已进行且成功,则设置为 true 的属性。

37

includeDestClasses

此属性控制是否在提供给编译器的类路径中包含目标类目录。如果设置为 true(默认值),则先前编译的类位于编译器的类路径中。

38

createMissingPackageInfoClass

package-info.java 文件中的一些包级别注释不会创建任何 package-info.class 文件,因此 Ant 每次都会重新编译相同的文件。

39

Modulepath

指定查找应用程序模块的位置。模块目录、模块文件或已展开模块的列表。

40

Modulepathref

要使用的 modulepath,作为对其他地方定义的路径的引用。

41

Modulesourcepath

指定在何处查找用于多模块编译的输入源文件。

42

Modulesourcepathref

要使用的 modulesourcepath,作为对其他地方定义的路径的引用。

43

Upgrademodulepath

指定替换运行时映像中可升级模块的模块位置。

44

Upgrademodulepathref

要使用的 upgrademodulepath,作为对其他地方定义的路径的引用。

45

Nativeheaderdir

指定在何处放置生成的本地头文件。

46

发布

指定 --release 开关的值。当在 JDK 9+ 上设置并运行时,将忽略 source 和 target 属性以及 bootclasspath。

示例

用法

在 src 目录中使用以下内容创建 TestMessage.java

public class TestMessage {
   public static void main(String[] args) {
      System.out.println("Welcome to tutorialspoint.com");
   }
}

创建包含以下内容的 build.xml

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">      
      <javac srcdir="src" destdir="build"/>
   </target>
</project>

上述脚本将运行一个 Java 类文件以打印输出。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [javac] F:\tutorialspoint\ant\build.xml:4: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
   [javac] Compiling 1 source file to F:\tutorialspoint\ant\build

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - Length

描述

Length 任务显示或设置包含字符串、文件或一个或多个嵌套资源集合的长度信息的属性。它也可以用作条件。

属性

序号 属性和描述
1

Property

要设置的属性。

2

模式

文件长度模式;当所有结果值为所有包含资源长度的总和时;当每个任务输出每个包含资源的绝对路径和长度时,每行一个。

3

File

要报告长度的单个文件。

4

资源

要报告长度的单个资源(使用扩展属性处理)。

5

字符串

要报告长度的字符串。

6

修剪

操作字符串时是否修剪。

7

长度

比较长度。

8

何时

比较类型:equal、eq、greater、gt、less、lt、ge(大于或等于)、ne(不等于)、le(小于或等于)。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <length string="tutorialspoint" property="text.size"/>
   <target name="info">            
      <echo message="${text.size}"/>
   </target>
</project>

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [echo] 14

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - LoadFile

描述

Loadfile 任务加载文件并将内容设置到属性中。

属性

序号 属性和描述
1

srcFile

源文件。

2

Property

要保存到的属性。

3

Encoding

加载文件时使用的编码。

4

failonerror

是否在失败时停止构建。

5

静默

不显示诊断消息(除非 Apache Ant 使用 -verbose 或 -debug 开关调用)或修改退出状态以反映错误。将其设置为 true 意味着将 failonerror 设置为 false。

用法

使用以下内容创建 message.txt:

Welcome to tutorialspoint.com

示例

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <loadfile property="message" srcFile="message.txt"/>
   <target name="info">            
      <echo message="${message}"/>
   </target>
</project>

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [echo] Welcome to tutorialspoint.com

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - MkDir

描述

Mkdir 任务创建目录。如有必要,还会创建不存在的父目录。如果目录已存在,则不执行任何操作。

属性

序号 属性和描述
1

目录

要创建的目录。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <mkdir dir="dist"/>
   <target name="info">
   </target>
</project>

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml
   [mkdir] Created dir: F:\tutorialspoint\ant\dist

info:

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - Move

描述

Move 任务将文件移动到新的文件或目录,或将文件集合移动到新的目录。默认情况下,如果目标文件已存在,则会覆盖它。当关闭覆盖功能时,只有当源文件比目标文件新,或者目标文件不存在时,才会移动文件。

属性

序号 属性和描述
1

File

要移动的文件或目录。

2

Preservelastmodified

使移动的文件与原始源文件具有相同的上次修改时间。

3

目标文件

要移动到的文件。

4

目标目录

要移动到的目录。

5

Overwrite

即使目标文件较新,也要覆盖现有文件。

6

强制

覆盖只读目标文件。

7

过滤

指示移动期间是否应进行标记过滤。

8

扁平化

忽略源目录的目录结构,将所有文件复制到 todir 属性指定的单个目录中。

9

IncludeEmptyDirs

复制包含在嵌套 FileSet 中的空目录。

10

Failonerror

如果为 false,则在要复制的文件不存在或嵌套文件集之一指向不存在的目录或移动时发生错误时,记录警告消息,但不停止构建。

11

静默

如果为 true 且 failonerror 为 false,则当要复制的文件不存在,或者嵌套文件集之一指向不存在的目录,或者复制过程中发生错误时,不记录警告消息。

12

Verbose

记录正在移动的文件。

13

Encoding

过滤复制文件时假定的编码。

14

Outputencoding

写入文件时使用的编码。

15

Enablemultiplemappings

如果为 true,则任务将处理给定源路径的所有映射。如果为 false,则任务将仅处理第一个文件或目录。此属性仅在存在映射器子元素时才相关。

16

粒度

在确定文件已过期之前要给予的毫秒级宽限时间。这是因为并非每个文件系统都支持将最后修改时间跟踪到毫秒级。如果源文件和目标文件位于时钟不同步的不同机器上,这也非常有用。

17

performGCOnFailedDelete

如果 Ant 无法删除文件或目录,它将重试该操作一次。如果此标志设置为 true,则它将在重试删除之前执行垃圾回收。已知将此标志设置为 true 可以解决 Windows 上的一些问题(在 Windows 上默认为 true),也可以解决位于 NFS 共享上的目录树的问题。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <move file="message.txt" tofile="message.txt.moved"/>
   </target>
</project>

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [move] Moving 1 file to F:\tutorialspoint\ant

BUILD SUCCESSFUL
Total time: 0 seconds

Apache Ant 任务 - Sleep

描述

Sleep 任务用于休眠一小段时间,这在构建或部署过程需要任务之间的时间间隔时很有用。

属性

序号 属性和描述
1

小时

添加到睡眠时间的小时数。

2

分钟

添加到睡眠时间的分钟数。

3

添加到睡眠时间的秒数。

4

毫秒

添加到睡眠时间的毫秒数。

5

Failonerror

控制是否因错误而中断构建的标志。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <sleep seconds="2"/>
   </target>
</project>

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:

BUILD SUCCESSFUL
Total time: 2 seconds

Apache Ant 任务 - WAR

描述

War 任务是 Jar 任务的扩展,对应该位于 Web 应用程序存档的 WEB-INF/lib、WEB-INF/classes 或 WEB-INF 目录中的文件进行特殊处理。

属性

序号 属性和描述
1

Destfile

要创建的 WAR 文件。

2

Webxml

要使用的 servlet 配置描述符 (WEB-INF/web.xml)。

3

基目录

从中打包文件的目录。

4

压缩

不仅存储数据,还压缩数据。除非您将 keepcompression 属性设置为 false,否则这将应用于整个存档,而不仅仅是您在更新时添加的文件。

5

保持压缩

对于来自现有存档的条目(例如嵌套的 zipfilesets 或更新存档时),保留其原始压缩方式,而不是使用 compress 属性。

6

Encoding

用于存档内文件名的字符编码。

7

Filesonly

仅存储文件条目。

8

包含

必须包含的文件模式的逗号或空格分隔列表。

9

includesfile

文件名。该文件的每一行都被视为一个包含模式。

10

Excludes

必须排除的文件模式的逗号或空格分隔列表。

11

Excludesfile

文件名。此文件的每一行都被视为排除模式。

12

defaultexcludes

指示是否应使用默认排除项 (yes|no)。

13

清单

要使用的清单文件。

14

Filesetmanifest

在 zipfileset 或 zipgroupfileset 文件中找到清单文件时的行为。有效值为 skip、merge 和 mergewithoutmain。merge 将合并所有清单,并将此合并到任何其他指定的清单中。mergewithoutmain 合并所有内容,但清单的主要部分除外。

15

Whenmanifestonly

没有文件匹配时的行为。有效值为 fail、skip 和 create。

16

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

17

索引

是否创建索引列表以加快类加载速度。除非您使用嵌套 indexjars 元素指定其他 jar,否则只有此 jar 的内容将包含在索引中。

18

indexMetaInf

是否将 META-INF 及其子项包含在索引中。如果 index 为 false,则无效。Oracle 的 jar 实现过去会跳过 META-INF 目录,Ant 也遵循此示例。Java 5 已更改此行为。为了避免在 Java 1.4 或更早版本上使用 Ant 生成的 jar 出现问题,除非明确要求,否则 Ant 不会包含 META-INF。

19

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

20

更新

指示如果目标文件已存在,是否更新或覆盖它。

21

重复

找到重复文件时的行为。有效值为 add、preserve 和 fail。

22

舍入

文件修改时间是否将四舍五入到下一个偶数秒。

23

级别

应执行文件压缩的非默认级别。有效值范围为 0(无压缩/最快)到 9(最大压缩/最慢)。

24

preserve0permissions

更新存档或添加来自不同存档的条目时,Ant 将假设 Unix 权限值为 0(没有人被允许对文件/目录执行任何操作)表示权限根本没有存储,而不是实际权限,并将改为应用其自己的默认值。

25

useLanguageEncodingFlag

如果编码为 UTF-8,是否设置语言编码标志。如果编码不是 UTF-8,则此设置无效。

26

createUnicodeExtraFields

是否创建 Unicode 额外字段以第二次在条目的元数据中存储文件名。

27

fallbacktoUTF8

如果无法使用指定的编码对文件名进行编码,是否使用 UTF-8 和语言编码标志代替指定的编码。

28

mergeClassPathAttributes

是否合并不同清单中找到的 Class-Path 属性(如果合并清单)。如果为 false,则只保留最后合并的清单的属性。

29

FlattenAttributes

是否将某个部分中出现多次的属性(这只能发生在 Class-Path 属性中)合并到单个属性中。

30

zip64Mode

何时对条目使用 Zip64 扩展。可能的值为 never、always 和 as-needed。

31

Needxmlfile

标志位,指示是否需要 web.xml 文件。在生成没有 web.xml 文件的 Servlet 2.5+ WAR 文件时,应将其设置为 false。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <war destfile="myapp.war" webxml="web.xml"></war>
   </target>
</project>

以上脚本将在当前目录中创建一个名为 myapp.ear 的 ear 文件。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [war] Building war: F:\tutorialspoint\ant\myapp.war

BUILD SUCCESSFUL
Total time: 1 second

Apache Ant 任务 - Zip

描述

zip 任务创建一个 zip 文件。

属性

序号 属性和描述
1

Destfile

要创建的 ZIP 文件。

2

Zipfile

destfile 的旧名称。已弃用。

3

基目录

从中打包文件的目录。

4

压缩

不仅存储数据,还压缩数据。除非您将 keepcompression 属性设置为 false,否则这将应用于整个存档,而不仅仅是您在更新时添加的文件。

5

保持压缩

对于来自现有存档的条目(例如嵌套的 zipfilesets 或更新存档时),保留其原始压缩方式,而不是使用 compress 属性。

6

Encoding

用于存档内文件名的字符编码。

7

Filesonly

仅存储文件条目。

8

包含

必须包含的文件模式的逗号或空格分隔列表。

9

Includesfile

文件名。此文件的每一行都被视为包含模式。

10

Excludes

必须排除的文件模式的逗号或空格分隔列表。

11

Excludesfile

文件名。此文件的每一行都被视为排除模式。

12

Defaultexcludes

指示是否应使用默认排除项 (yes|no)。

13

清单

要使用的清单文件。

14

Filesetmanifest

在 zipfileset 或 zipgroupfileset 文件中找到清单文件时的行为。有效值为 skip、merge 和 mergewithoutmain。merge 将合并所有清单,并将此合并到任何其他指定的清单中。mergewithoutmain 合并所有内容,但清单的主要部分除外。

15

Whenmanifestonly

没有文件匹配时的行为。有效值为 fail、skip 和 create。

16

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

17

索引

是否创建索引列表以加快类加载速度。除非您使用嵌套 indexjars 元素指定其他 jar,否则只有此 jar 的内容将包含在索引中。

18

indexMetaInf

是否将 META-INF 及其子项包含在索引中。如果 index 为 false,则无效。Oracle 的 jar 实现过去会跳过 META-INF 目录,Ant 也遵循此示例。Java 5 已更改此行为。为了避免在 Java 1.4 或更早版本上使用 Ant 生成的 jar 出现问题,除非明确要求,否则 Ant 不会包含 META-INF。

19

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

20

更新

指示如果目标文件已存在,是否更新或覆盖它。

21

重复

找到重复文件时的行为。有效值为 add、preserve 和 fail。

22

舍入

文件修改时间是否将四舍五入到下一个偶数秒。

23

级别

应执行文件压缩的非默认级别。有效值范围为 0(无压缩/最快)到 9(最大压缩/最慢)。

24

Preserve0permissions

更新存档或添加来自不同存档的条目时,Ant 将假设 Unix 权限值为 0(没有人被允许对文件/目录执行任何操作)表示权限根本没有存储,而不是实际权限,并将改为应用其自己的默认值。

25

useLanguageEncodingFlag

如果编码为 UTF-8,是否设置语言编码标志。如果编码不是 UTF-8,则此设置无效。

26

createUnicodeExtraFields

是否创建 Unicode 额外字段以第二次在条目的元数据中存储文件名。

27

FallbacktoUTF8

如果无法使用指定的编码对文件名进行编码,是否使用 UTF-8 和语言编码标志代替指定的编码。

28

mergeClassPathAttributes

是否合并不同清单中找到的 Class-Path 属性(如果合并清单)。如果为 false,则只保留最后合并的清单的属性。

29

flattenAttributes

是否将某个部分中出现多次的属性(这只能发生在 Class-Path 属性中)合并到单个属性中。

30

Zip64Mode

何时对条目使用 Zip64 扩展。可能的值为 never、always 和 as-needed。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <zip basedir="src" destfile="src.zip" />
      <echo>src archived.</echo>
   </target>
</project>

输出

在同一文件夹中创建一个包含一些内容的 text.txt 文件。现在,在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [zip] Building zip: F:\tutorialspoint\ant\src.zip
   [echo] src archived.

BUILD SUCCESSFUL
Total time: 0 seconds

您可以验证已创建的 src.zip 文件。

Apache Ant 任务 - JAR

描述

Jar 任务打包一组文件。

属性

序号 属性和描述
1

Destfile

要创建的 JAR 文件。

2

基目录

从中打包文件的目录。

3

压缩

不仅存储数据,还压缩数据。除非您将 keepcompression 属性设置为 false,否则这将应用于整个存档,而不仅仅是您在更新时添加的文件。

4

保持压缩

对于来自现有存档的条目(例如嵌套的 zipfilesets 或更新存档时),保留其原始压缩方式,而不是使用 compress 属性。

5

Encoding

用于存档内文件名的字符编码。

6

Filesonly

仅存储文件条目。

7

包含

必须包含的文件模式的逗号或空格分隔列表。

8

Includesfile

文件名。该文件的每一行都被视为一个包含模式。

9

Excludes

必须排除的文件模式的逗号或空格分隔列表。

10

Excludesfile

文件名。此文件的每一行都被视为排除模式。

11

Defaultexcludes

指示是否应使用默认排除项 (yes|no)。

12

清单

要使用的清单文件。

13

Filesetmanifest

在 zipfileset 或 zipgroupfileset 文件中找到清单文件时的行为。有效值为 skip、merge 和 mergewithoutmain。merge 将合并所有清单,并将此合并到任何其他指定的清单中。mergewithoutmain 合并所有内容,但清单的主要部分除外。

14

Whenmanifestonly

没有文件匹配时的行为。有效值为 fail、skip 和 create。

15

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

16

索引

是否创建索引列表以加快类加载速度。除非您使用嵌套 indexjars 元素指定其他 jar,否则只有此 jar 的内容将包含在索引中。

17

indexMetaInf

是否将 META-INF 及其子项包含在索引中。如果 index 为 false,则无效。Oracle 的 jar 实现过去会跳过 META-INF 目录,Ant 也遵循此示例。Java 5 已更改此行为。为了避免在 Java 1.4 或更早版本上使用 Ant 生成的 jar 出现问题,除非明确要求,否则 Ant 不会包含 META-INF。

18

Manifestencoding

指定清单文件时,用于读取 JAR 清单的编码。

19

更新

指示如果目标文件已存在,是否更新或覆盖它。

20

重复

找到重复文件时的行为。有效值为 add、preserve 和 fail。

21

舍入

文件修改时间是否将四舍五入到下一个偶数秒。

22

级别

应执行文件压缩的非默认级别。有效值范围为 0(无压缩/最快)到 9(最大压缩/最慢)。

23

preserve0permissions

更新存档或添加来自不同存档的条目时,Ant 将假设 Unix 权限值为 0(没有人被允许对文件/目录执行任何操作)表示权限根本没有存储,而不是实际权限,并将改为应用其自己的默认值。

24

useLanguageEncodingFlag

如果编码为 UTF-8,是否设置语言编码标志。如果编码不是 UTF-8,则此设置无效。

25

createUnicodeExtraFields

是否创建 Unicode 额外字段以第二次在条目的元数据中存储文件名。

26

fallbacktoUTF8

如果无法使用指定的编码对文件名进行编码,是否使用 UTF-8 和语言编码标志代替指定的编码。

27

mergeClassPathAttributes

是否合并不同清单中找到的 Class-Path 属性(如果合并清单)。如果为 false,则只保留最后合并的清单的属性。

28

flattenAttributes

是否将某个部分中出现多次的属性(这只能发生在 Class-Path 属性中)合并到单个属性中。

29

zip64Mode

何时对条目使用 Zip64 扩展。可能的值为 never、always 和 as-needed。

示例

用法

创建包含以下内容的 build.xml:

<?xml version="1.0"?>
<project name="TutorialPoint" default="info">
   <target name="info">
      <jar basedir="app" destfile="app.jar" />
      <echo>jar created.</echo>
   </target>
</project>

以上脚本将在当前目录中创建一个名为 myapp.ear 的 ear 文件。

输出

在上述构建文件上运行 Ant 将产生以下输出:

F:\tutorialspoint\ant>ant
Buildfile: F:\tutorialspoint\ant\build.xml

info:
   [jar] Building jar: F:\tutorialspoint\ant\app.jar
   [echo] jar created.

BUILD SUCCESSFUL
Total time: 0 seconds
广告