Apache Ant 任务 - Javac


描述

Javac 任务编译 Java 源代码树。将递归扫描源目录和目标目录以查找要编译的 Java 源文件。仅编译没有相应 .class 文件或 .class 文件早于 .java 文件的 .java 文件。

特性

先生编号 属性和描述
1

源目录

java 文件的位置。

2

目标目录

存储类文件的位置。

3

包括

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

4

包含文件

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

5

不包括

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

6

排除文件

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

7

默认排除

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

8

类路径

要使用的类路径。

9

源路径

要使用的源路径。要抑制源路径开关,请使用 sourcepath=""。

10

引导类路径

引导类文件的位置。

11

类路径引用

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

12

源路径引用

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

13

引导类路径引用

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

14

扩展目录

安装扩展的位置。

15

编码

源文件的编码。

16

南索瓦恩

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

17 号

调试

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

18

调试级别

要附加到 -g 命令行开关的关键字列表。合法值是无或以下关键字的逗号分隔列表:lines、vars 和 source。

19

优化

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

20

弃用

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

21

冗长

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

22

依靠

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

23

包括Ant运行时

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

24

包含Java运行时

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

25

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

26

可执行文件

fork 时使用的 javac 可执行文件的完整路径是 yes。

27

内存初始大小

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

28

内存最大大小

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

29

失败错误

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

30

错误属性

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

31

来源

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

32

目标

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

33

编译器

要使用的编译器实现。

34

列表文件

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

35

临时目录

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

36

更新属性

如果编译已发生且成功,则该属性设置为 true。

37

包含目标类

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

38

创建MissingPackageInfoClass

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

39

模块路径

指定在哪里可以找到应用程序模块。模块、模块文件或分解模块的目录列表。

40

模块路径引用

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

41

模块源路径

指定在哪里查找多模块编译的输入源文件。

42

模块源路径引用

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

43

升级模块路径

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

44

升级模块路径参考

要使用的升级模块路径,作为对其他地方定义的路径的引用给出。

45

NSative headerdir

指定放置生成的本机头文件的位置。

46

发布

指定 --release 开关的值。在 JDK 9+ 上设置并运行时,源和目标属性以及 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