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
廣告

© . All rights reserved.