关于build:Gradle:Spring Boot带有jvm参数的自定义任务

Gradle: custom task with jvm arguments for Spring Boot

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

gradle bootRun --debug-jvm

任务应如下所示:gradle debugRun

我尝试了此操作,但它不起作用:

1
2
3
task debugRun(dependsOn: 'bootRun') << {
    applicationDefaultJvmArgs = ['--debug-jvm']
}

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


仅使debug运行任务依赖于bootRun任务是不够的。它需要修改现有的bootRun任务以启用调试。您可以通过在Gradle的任务图中检查debugRun任务来做到这一点。如果存在,则将bootRun任务的debug属性设置为true

1
2
3
4
5
6
7
8
9
task debugRun(dependsOn:bootRun) {
    gradle.taskGraph.whenReady { graph ->
        if (graph.hasTask(debugRun)) {
            bootRun {
                debug = true
            }
        }
    }
}