Apache Ant Tasks 简明教程
Apache Ant Tasks - Javac
Description
Javac 任务编译 Java 源树。将递归扫描源目录和目标目录,以查找要编译的 Java 源文件。只有对应 .class 文件不存在或 .class 文件较旧的 .java 文件才会被编译。
Properties
Sr.No |
Attributes & Description |
1 |
Srcdir java文件的地址 |
2 |
Destdir 存放类文件的地址 |
3 |
Includes 逗号或空格分隔必须包含的文件模式的列表 |
4 |
Includesfile 一个文件的文件名。该文件的每一行都被视为一个包含模式。 |
5 |
Excludes 逗号或空格分隔必须排除的文件模式的列表 |
6 |
Excludesfile 文件的名称。此文件中的每一行都视为排除模式。 |
7 |
Defaultexcludes 指示是否应使用默认排除项(是 |
no). |
8 |
Classpath The classpath to use. |
9 |
Sourcepath 要使用的源路径。为了关闭源路径开关,请使用sourcpath="" |
10 |
Bootclasspath 引导类文件的地址 |
11 |
Classpathref 要使用的类路径,作为对已在其他地方定义的路径的引用 |
12 |
Sourcepathref 要使用的源路径,作为对已在其他地方定义的路径的引用 |
13 |
Bootclasspathref 要使用的引导类路径,作为对已在其他地方定义的路径的引用 |
14 |
Extdirs Location of installed extensions. |
15 |
Encoding Encoding of source files. |
16 |
NSowarn 表明是否应将-nowarn开关传递给编译器 |
17 |
Debug 表明是否应用调试信息编译源代码。如设置关闭,则对于支持它的编译器,将在命令行上传递 -g:nobe(对于其他编译器,将不使用命令行参数)。如设置“真”,debuglevel属性的值将决定命令行参数 |
18 |
Debuglevel 要附加到 -g 命令行开关的关键字列表。合法值为none或以下关键字的逗号分隔列表:lines、vars和source |
19 |
Optimize 表明是否应使用优化编译源代码。请注意, 自JDK 1.3起,此标志已被Sun的javac忽略(因为编译时优化是不必要的) |
20 |
Deprecation 表明是否应使用弃用信息来编译源代码 |
21 |
Verbose 要求编译器给出详细输出 |
22 |
Depend 启用对支持此的编译器的依赖项跟踪(jikes和classic) |
23 |
includeAntRuntime 是否在类路径中包括Ant运行时库。通常最好将其设置为false,因此脚本的行为不受其所运行环境的影响 |
24 |
includeJavaRuntime 是否在类路径中包括执行JVM中的默认运行时库 |
25 |
Fork 是否使用JDK编译器外部执行javac |
26 |
Executable 如果分叉为是,要用于 javac 可执行文件的完整路径。 |
27 |
memoryInitialSize 如果外部运行 javac,则底层 JVM 的初始内存大小。(示例:83886080、81920k 或 80m) |
28 |
memoryMaximumSize 如果外部运行 javac,则底层 JVM 的最大内存大小;否则忽略。(示例:83886080、81920k 或 80m) |
29 |
Failonerror 指示编译错误是否导致构建失败。 |
30 |
Errorproperty 如果编译失败要设为 true 的属性。 |
31 |
Source 编译器接受的 Java 语言特性,如 -source 命令行开关所指定。有效特性版本为 1.3、1.4、1.5 或 5 等。 |
32 |
Target 为特定 JVM 版本生成 class 文件(交叉编译)。 |
33 |
Compiler 要使用的编译器实现。 |
34 |
listfiles 指示是否列出要编译的源文件。 |
35 |
TempDir Ant 应该放置临时文件的位置。这仅在进行分叉任务且命令行参数长度超过 4 kB 时使用。 |
36 |
updatedProperty 如果已进行编译且编译成功,要设为 true 的属性。 |
37 |
includeDestClasses 此属性控制是否将目标类目录包含在提供给编译器的 classpath 中。如果设置成 true(默认值),先前编译的类将在编译器的 classpath 中。 |
38 |
createMissingPackageInfoClass package-info.java 文件中的一些包级注释不会创建任何 package-info.class 文件,因此 Ant 会每次重新编译同一文件。 |
39 |
MSodulepath 指定应用程序模块查找位置。模块目录、模块文件或解压模块的列表。 |
40 |
Modulepathref 要使用的模块路径,给定为对在其他地方定义的路径的引用。 |
41 |
Modulesourcepath 指定多模块编译的输入源文件查找位置。 |
42 |
Modulesourcepathref 要使用的 modulesourcepath,给定为对在其他地方定义的路径的引用。 |
43 |
Upgrademodulepath 指定在运行时映像中替换可升级模块的模块位置。 |
44 |
Upgrademodulepathref 要使用的 upgrademodulepath,给定为对在其他地方定义的路径的引用。 |
45 |
NSativeheaderdir 指定放置生成的本机头文件的目录。 |
46 |
Example
Usage
在 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 类文件以打印输出。
Output
在上述构建文件上运行 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