Gradle:使用Spring Boot的jvm参数进行自定义任务

Lug*_*aru 3 jvm build gradle spring-boot

尝试为Spring Boot创建一个小的自定义gradle任务,最初看起来像这样:

gradle bootRun --debug-jvm

任务应如下所示: gradle debugRun

我试过这个,但它不起作用:

task debugRun(dependsOn: 'bootRun') << {
    applicationDefaultJvmArgs = ['--debug-jvm']
}
Run Code Online (Sandbox Code Playgroud)

如何将此调试标志传递给bootRun任务?

And*_*son 7

debug运行任务依赖于bootRun任务是不够的.它需要修改现有bootRun任务以启用调试.您可以通过debugRun在Gradle的任务图中检查任务来完成此操作.如果它在那里,您将bootRun任务的debug属性设置为true:

task debugRun(dependsOn:bootRun) {
    gradle.taskGraph.whenReady { graph ->
        if (graph.hasTask(debugRun)) {
            bootRun {
                debug = true
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)