Apache Ant Tasks - 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

Classpath

要使用的类路径。

9

Sourcepath

要使用的源路径。 要禁止 sourcepath 切换,请使用 sourcepath=""。

10

Bootclasspath

引导类文件的位置。

11

Classpathref

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

12

Sourcepathref

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

13

Bootclasspathref

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

14

Extdirs

已安装扩展的位置。

15

Encoding

源文件的编码。

16

NSowarn

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

17

Debug

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

18

Debuglevel

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

19

Optimize

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

20

Deprecation

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

21

Verbose

询问编译器的详细输出。

22

Depend

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

23

includeAntRuntime

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

24

includeJavaRuntime

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

25

Fork

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

26

Executable

在 fork 的情况下使用的 javac 可执行文件的完整路径是 yes。

27

memoryInitialSize

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

28

memoryMaximumSize

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

29

Failonerror

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

30

Errorproperty

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

31

Source

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

32

Target

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

33

Compiler

要使用的编译器实现。

34

listfiles

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

35

TempDir

Ant 应该放置临时文件的位置。 这仅在任务被分叉并且命令行参数长度超过 4 kB 时使用。

36

updatedProperty

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

37

includeDestClasses

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

38

createMissingPackageInfoClass

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

39

MSodulepath

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

40

Modulepathref

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

41

Modulesourcepath

指定在哪里可以找到用于多模块编译的输入源文件。

42

Modulesourcepathref

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

43

Upgrademodulepath

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

44

Upgrademodulepathref

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

45

NSativeheaderdir

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

46

Release

指定 --release 开关的值。 在 JDK 9+ 上设置和运行时,源和目标属性以及引导类路径将被忽略。


用法

示例

在 src 目录中创建具有以下内容的 TestMessage.java:

public class TestMessage {
   public static void main(String[] args) {
      System.out.println("Welcome to www.w3ccoo.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