68. 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 <folder containing spring-boot-antlib-1.5.9.RELEASE.jar>
Tip
“使用 Spring Boot”部分包括一个更完整的结合使用 Apache Ant 和 spring-boot-antlib示例
68.1 Spring Boot Ant 任务
声明spring-boot-antlib
名称空间后,以下附加任务可用。
68.1.1 spring-boot:exejar
exejar
任务可用于创建 Spring Boot 可执行 jar。任务支持以下属性:
Attribute | Description | Required |
---|---|---|
destfile | 要创建的目标 jar 文件 | Yes |
classes | Java 类文件的根目录 | Yes |
start-class | 要运行的主要应用程序类 | 否*(默认为发现第一类声明main 方法)* |
以下嵌套元素可用于任务:
Element | Description |
---|---|
resources | 一个或多个Resource Collections描述一组Resources,应将其添加到创建的 jar 文件的内容中。 |
lib | 应该将一个或多个Resource Collections添加到组成应用程序运行时依赖项 Classpath 的 jar 库集合中。 |
68.1.2 Examples
Specify start-class.
<spring-boot:exejar destfile="target/my-application.jar"
classes="target/classes" start-class="com.foo.MyApplication">
<resources>
<fileset dir="src/main/resources" />
</resources>
<lib>
<fileset dir="lib" />
</lib>
</spring-boot:exejar>
Detect start-class.
<exejar destfile="target/my-application.jar" classes="target/classes">
<lib>
<fileset dir="lib" />
</lib>
</exejar>
68.2 spring-boot:findmainclass
exejar
在内部使用findmainclass
任务来查找声明main
的类。如果需要,您也可以直接在构建中使用此任务。支持以下属性
Attribute | Description | Required |
---|---|---|
classesroot | Java 类文件的根目录 | 是*(除非指定了mainclass )* |
mainclass | 可用于短路main 类搜索 | No |
property | 应该与结果一起设置的 Ant 属性 | 否*(如果未指定,将记录结果)* |
68.2.1 Examples
查找并记录.
<findmainclass classesroot="target/classes" />
查找并设置.
<findmainclass classesroot="target/classes" property="main-class" />
覆盖并设置.
<findmainclass mainclass="com.foo.MainClass" property="main-class" />