Spring Boot AntLib 模組

Spring Boot AntLib 模組為 Apache Ant 提供了基本的 Spring Boot 支援。你可以使用該模組來建立可執行的 jar 包。要使用該模組,你需要在你的 build.xml 檔案中宣告一個額外的 spring-boot 名稱空間,如下例所示:

<project xmlns:ivy="antlib:org.apache.ivy.ant"
	xmlns:spring-boot="antlib:org.springframework.boot.ant"
	name="myapp" default="build">
	...
</project>

你需要記住使用 -lib 選項啟動 Ant,如下例所示:

$ ant -lib <directory containing spring-boot-antlib-3.4.5.jar>
“Using Spring Boot” 部分包含了一個更完整的示例,說明如何使用 Apache Ant 和 spring-boot-antlib

Spring Boot Ant 任務

一旦聲明瞭 spring-boot-antlib 名稱空間,以下附加任務即可使用:

使用 “exejar” 任務

你可以使用 exejar 任務來建立 Spring Boot 可執行 jar。該任務支援以下屬性:

屬性 描述 必填

destfile

要建立的目標 jar 檔案

classes

Java 類檔案的根目錄

start-class

要執行的主應用類

(預設值是找到的第一個聲明瞭 main 方法的類)

以下巢狀元素可與該任務一起使用:

元素 描述

resources

一個或多個 資源集合 (Resource Collections),描述應新增到建立的 jar 檔案內容的 資源 (Resources) 集。

lib

一個或多個 資源集合 (Resource Collections),應新增到構成應用執行時依賴類路徑的 jar 庫集。

示例

本節展示了兩個 Ant 任務示例。

指定 start-class
<spring-boot:exejar destfile="target/my-application.jar"
		classes="target/classes" start-class="com.example.MyApplication">
	<resources>
		<fileset dir="src/main/resources" />
	</resources>
	<lib>
		<fileset dir="lib" />
	</lib>
</spring-boot:exejar>
檢測 start-class
<exejar destfile="target/my-application.jar" classes="target/classes">
	<lib>
		<fileset dir="lib" />
	</lib>
</exejar>

使用 “findmainclass” 任務

findmainclass 任務由 exejar 內部用於查詢宣告 main 方法的類。如有必要,你也可以直接在構建中使用此任務。支援以下屬性:

屬性 描述 必填

classesroot

Java 類檔案的根目錄

(除非指定了 mainclass

mainclass

可用於跳過 main 類搜尋

property

應將結果設定到的 Ant 屬性

(如果未指定,結果將記錄到日誌)

示例

本節包含三個使用 findmainclass 的示例。

查詢並記錄
<findmainclass classesroot="target/classes" />
查詢並設定
<findmainclass classesroot="target/classes" property="main-class" />
覆蓋並設定
<findmainclass mainclass="com.example.MainClass" property="main-class" />