8.3 Spring Boot AntLib模块
优质
小牛编辑
131浏览
2023-12-01
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 <folder containing spring-boot-antlib-2.1.3.RELEASE.jar>
“使用Spring Boot”部分包含一个使用带有spring-boot-antlib的Apache Ant的更完整示例。
8.3.1 Spring Boot Ant Tasks
一旦声明了spring-boot-antlib命名空间,就可以使用以下附加任务:
- spring-boot:exejar
- spring-boot:findmainclass
8.3.1.1 spring-boot:exejar
您可以使用exejar任务来创建Spring Boot可执行jar。 任务支持以下属性:
Attribute | Description | Required |
---|---|---|
destfile | 要创建的目标jar文件 | Yes |
classes | Java类文件的根目录 | Yes |
start-class | 要运行的主要应用程序类 | No (默认值是找到的第一个声明main方法的类) |
以下嵌套元素可与任务一起使用:
Element | Description |
---|---|
resources | 一个或多个资源集合,描述应添加到创建的jar文件内容中的一组资源。 |
lib | 应该添加到构成应用程序的运行时依赖性类路径的jar库集的一个或多个资源集合。 |
8.3.1.2 示例
本节显示Ant任务的两个示例。
<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>
<exejar destfile="target/my-application.jar" classes="target/classes">
<lib>
<fileset dir="lib" />
</lib>
</exejar>
8.3.2 spring-boot:findmainclass
exejar在内部使用findmainclass任务来定位声明main的类。 如有必要,您还可以直接在构建中使用此任务。 支持以下属性:
Attribute | Description | Required |
---|---|---|
classesroot | Java类文件的根目录 | Yes (除非指定了mainclass) |
mainclass | 可用于短路主类搜索 | No |
property | 应该使用结果设置的Ant属性 | No (如果未指定,将记录结果) |
8.3.2.1 示例
本节包含三个使用findmainclass的示例。
<findmainclass classesroot="target/classes" />
<findmainclass classesroot="target/classes" property="main-class" />
<findmainclass mainclass="com.example.MainClass" property="main-class" />