将文件从本地编码转换为带转义 Unicode 的 ASCII。一个常见的用法是在编译之前将以本地操作系统编码维护的源文件转换为 ASCII。
目录 src 中的文件将从本地编码转换为 ASCII。默认情况下,目录中的所有文件都会被转换。但是,可以使用 includes 和 excludes 属性将转换限制为选定的文件。有关文件匹配模式的更多信息,请参阅关于 基于目录的任务 的部分。如果未指定 encoding,则使用 JVM 的默认编码。如果指定了 ext,则输出文件将被重命名以使用它作为新的扩展名。可以使用嵌套的 <mapper>
元素实现更复杂的文件名转换。默认情况下,将使用 标识映射器。如果 dest 和 src 指向同一个目录,则需要 ext 属性或嵌套的 <mapper>
。
此任务形成一个隐式的 FileSet,并支持 <fileset>
的大多数属性(dir 变为 src),以及嵌套的 <include>
、<exclude>
和 <patternset>
元素。
可以使用不同的转换器。这可以通过 implementation 属性或嵌套元素来选择。以下是属性的选择
default—平台的默认转换器:在 Kaffe 上运行时为 kaffe,否则为 builtin。
sun—曾经是 JDK 8 或更早版本的标准转换器
kaffe—Kaffe 的标准转换器
builtin—Ant 的内部实现。自 Ant 1.9.8 起
属性 | 描述 | 必需 |
---|---|---|
reverse | 反转转换的意义,即从 ASCII 转换为本地 仅受 sun和 builtin转换器支持 |
否 |
encoding | 文件所在的本地编码 | 否;默认为默认 JVM 字符编码 |
src | 查找文件的目录;默认为 basedir | 否 |
dest | 输出文件的目录 | 是 |
ext | 重命名输出文件时要使用的文件扩展名 | 否 |
includes | 必须包含的文件模式的逗号或空格分隔列表。 | 否;默认为全部(**) |
includesfile | 文件名称。此文件的每一行都被视为一个包含模式 | 否 |
excludes | 必须排除的文件模式的逗号或空格分隔列表。 | 否;默认为默认排除项,如果 defaultexcludes 为 no,则为无 |
excludesfile | 文件名称。此文件的每一行都被视为一个排除模式 | 否 |
defaultexcludes | 指示是否应使用默认排除项(yes|no)。 |
否;默认为 yes |
implementation | 要使用的转换器实现。(请参阅上述 列表 中的有效转换器。) | 否;默认为当前 JVM 的默认转换器 |
您可以使用嵌套的 <arg>
元素为转换器指定其他命令行参数。这些元素的指定方式与 命令行参数 相同,但有一个额外的属性,可用于仅在使用给定转换器实现时启用参数。
属性 | 描述 | 必需 |
---|---|---|
value | 请参阅 命令行参数。 | 以下各项中恰好一项 |
line | ||
file | ||
path | ||
implementation | 仅当所选转换器实现与此属性的值匹配时才传递指定的参数。合法值与上述 列表 中的有效编译器相同。) | 否 |
自 Apache Ant 1.8.0 起
一个 类似路径的结构,其中包含在加载转换器实现时要使用的类路径,如果指定了自定义类。在使用内置转换器之一时,它没有任何效果。
自 Ant 1.8.0 起
如果定义的类型实现了 Native2AsciiAdapter
接口,则可以使用该类型的嵌套元素作为 implementation 属性的替代方法。
将目录 srcdir 中所有以 .eucjis 结尾的文件从 EUCJIS 编码转换为 ASCII,并将它们重命名为以 .java 结尾。
<native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java"/>
将目录 native/japanese 中所有以 .java 结尾的文件转换为 ASCII,并将结果放置在目录 src 中。文件的名称保持不变。
<native2ascii encoding="EUCJIS" src="native/japanese" dest="src" includes="**/*.java"/>
如果您想使用自定义的 Native2AsciiAdapter
org.example.MyAdapter
,您可以使用 implementation 属性
<native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java" implementation="org.example.MyAdapter"/>
或者定义一个类型并将此嵌套到任务中,如
<componentdef classname="org.example.MyAdapter" name="myadapter"/> <native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java"> <myadapter/> </native2ascii>
在这种情况下,您的 native2ascii
适配器可以支持它自己的属性和嵌套元素。