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.6.jar>
“使用 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

一个或多个 资源集合,描述应添加到创建的 jar 文件内容中的 资源 集合。

lib

一个或多个 资源集合,应添加到构成应用程序运行时依赖类路径的 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" />