使用 Gradle 运行您的应用程序

要运行你的应用程序而不先构建归档,可以使用启动运行任务:spring-doc.cadn.net.cn

$ ./gradlew bootRun

启动运行任务是 的实例启动运行JavaExec亚纲。 因此,Gradle 中执行 Java 进程的所有常规配置选项都已提供。 任务会自动配置为使用主源集的运行时类路径。spring-doc.cadn.net.cn

默认情况下,主类会自动配置,方法是寻找具有公共静态空缺主(String[])方法在主源集输出中。spring-doc.cadn.net.cn

主类也可以通过任务的主要财产:spring-doc.cadn.net.cn

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

或者,主类名称也可以在项目范围内使用mainClassSpring靴DSL的属性:spring-doc.cadn.net.cn

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

默认情况下,启动运行将配置JVM以优化其启动速度,以加快开发阶段的启动速度。 通过使用优化启动性质,如下例所示:spring-doc.cadn.net.cn

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

如果应用插件已经应用了,其mainClass属性必须配置,并且可用于相同的目的:spring-doc.cadn.net.cn

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

向申请提交论据

就像所有人一样JavaExec任务,参数可以传递给启动运行从命令行使用--args='<arguments>'使用Gradle 4.9或更高版本时。 例如,运行应用程序时有一个名为开发激活时可以使用以下命令:spring-doc.cadn.net.cn

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

将系统属性传递给你的应用

因为启动运行是标准JavaExec任务,系统属性可以通过在构建脚本中指定它们传递给应用程序的 JVM。 要让系统属性的值可配置,可以用项目属性设置它的值。 要让项目属性成为可选,请引用findProperty. 这样做还可以通过?:埃尔维斯算符,如下例所示:spring-doc.cadn.net.cn

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

上述例子设定为com.example.property系统属性与示例项目财产。 如果示例项目属性尚未设定,系统属性的价值将为默认值.spring-doc.cadn.net.cn

Gradle 允许以多种方式设置项目属性,包括在命令行中使用-P旗帜,如下例所示:spring-doc.cadn.net.cn

$ ./gradlew bootRun -Pexample=custom

上述示例设定了示例项目财产习惯.启动运行然后将此值用作com.example.property系统属性。spring-doc.cadn.net.cn

补充资源

如果你的项目中已经添加了开发工具,它会自动监控应用的类路径是否有更改。 注意,修改过的文件需要重新编译,才能更新类路径,才能触发开发工具的重新加载。 有关使用devtools的更多细节,请参阅参考文档的这一部分spring-doc.cadn.net.cn

或者,你也可以配置启动运行使得你的应用程序的静态资源从源位置加载:spring-doc.cadn.net.cn

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

这使得它们在正式应用中可重新加载,这在开发阶段非常有帮助。spring-doc.cadn.net.cn

使用测试主类

此外启动运行一个bootTestRun任务也会被注册。 喜欢启动运行,bootTestRun是 的一个实例启动运行但它配置为使用测试源集输出中的主类,而不是主源集。 它还使用测试源集的运行时类路径,而非主源集的运行时类路径。 如bootTestRun是 的一个实例启动运行,上述所有配置选项启动运行也可以与bootTestRun.spring-doc.cadn.net.cn