此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

若要在不首先构建存档的情况下运行应用程序,请使用以下任务:bootRunSpring中文文档

$ ./gradlew bootRun

该任务是 BootRun 的一个实例,它是一个子类。 因此,您可以在 Gradle 中执行 Java 进程的所有常用配置选项。 该任务将自动配置为使用主源代码集的运行时类路径。bootRunJavaExecSpring中文文档

默认情况下,将通过在主源代码集的输出中查找具有方法的类来自动配置主类。public static void main(String[])Spring中文文档

还可以使用任务的属性显式配置主类:mainSpring中文文档

tasks.named("bootRun") {
	mainClass = 'com.example.ExampleApplication'
}
tasks.named<BootRun>("bootRun") {
	mainClass.set("com.example.ExampleApplication")
}

或者,可以使用 Spring Boot DSL 的属性在项目范围内配置主类名称:mainClassSpring中文文档

springBoot {
	mainClass = 'com.example.ExampleApplication'
}
springBoot {
	mainClass.set("com.example.ExampleApplication")
}

默认情况下,将配置 JVM 以优化其启动,以便在开发过程中更快地启动。 可以使用该属性禁用此行为,如以下示例所示:bootRunoptimizedLaunchSpring中文文档

tasks.named("bootRun") {
	optimizedLaunch = false
}
tasks.named<BootRun>("bootRun") {
	optimizedLaunch.set(false)
}

如果应用了应用程序插件,则必须配置其属性,并且可以用于相同的目的:mainClassSpring中文文档

application {
	mainClass = 'com.example.ExampleApplication'
}
application {
	mainClass.set("com.example.ExampleApplication")
}

将参数传递给应用程序

与所有任务一样,使用 Gradle 4.9 或更高版本时,可以使用命令行将参数传递到中。 例如,若要使用名为 active 的配置文件运行应用程序,可以使用以下命令:JavaExecbootRun--args='<arguments>'devSpring中文文档

$ ./gradlew bootRun --args='--spring.profiles.active=dev'

将系统属性传递给应用程序

由于这是一项标准任务,因此可以通过在构建脚本中指定系统属性来传递给应用程序的 JVM。 若要使系统属性的值可配置,请使用项目属性设置其值。 若要允许项目属性是可选的,请使用 引用它。 这样做还允许使用 Elvis 运算符提供默认值,如以下示例所示:bootRunJavaExecfindProperty?:Spring中文文档

tasks.named("bootRun") {
	systemProperty 'com.example.property', findProperty('example') ?: 'default'
}
tasks.named<BootRun>("bootRun") {
	systemProperty("com.example.property", findProperty("example") ?: "default")
}

前面的示例将该系统属性设置为项目属性的值。 如果尚未设置项目属性,则系统属性的值将为 。com.example.propertyexampleexampledefaultSpring中文文档

Gradle 允许以多种方式设置项目属性,包括在命令行中使用标志,如以下示例所示:-PSpring中文文档

$ ./gradlew bootRun -Pexample=custom

前面的示例将 project 属性的值设置为 。 然后,将此用作 System 属性的值。examplecustombootRuncom.example.propertySpring中文文档

重新加载资源

如果已将 devtools 添加到项目中,它将自动监视应用程序的类路径以查找更改。 请注意,需要重新编译修改后的文件才能更新类路径,以便触发使用 devtools 重新加载。 有关使用 devtools 的更多详细信息,请参阅参考文档的此部分Spring中文文档

或者,您可以进行配置,以便从其源位置加载应用程序的静态资源:bootRunSpring中文文档

tasks.named("bootRun") {
	sourceResources sourceSets.main
}
tasks.named<BootRun>("bootRun") {
	sourceResources(sourceSets["main"])
}

这使得它们可以在实时应用程序中重新加载,这在开发时很有帮助。Spring中文文档

使用测试主类

此外,还注册了任务。 Like ,是 的实例,但它被配置为使用在测试源集的输出中找到的主类,而不是主源代码集。 它还使用测试源集的运行时类路径,而不是主源集的运行时类路径。 作为 的实例,上面描述的所有配置选项也可以与 一起使用。bootRunbootTestRunbootRunbootTestRunBootRunbootTestRunBootRunbootRunbootTestRunSpring中文文档