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