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

Classpath

要使用的类路径。

9

Sourcepath

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

10

Bootclasspath

引导类文件的位置。

11

Classpathref

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

12

Sourcepathref

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

13

Bootclasspathref

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

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 和 classic)启用依赖项跟踪。

23

includeAntRuntime

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

24

includeJavaRuntime

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

25

Fork

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

26

Executable

如果 fork 为 yes,则要使用的 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 版本生成类文件(交叉编译)。

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

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

41

Modulesourcepath

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

42

Modulesourcepathref

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

43

Upgrademodulepath

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

44

Upgrademodulepathref

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

45

NSativeheaderdir

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

46

Release

指定 --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
广告