扩展现有的Gradle任务并覆盖配置

Sea*_*son 6 gradle dropwizard

我想定义一个叫做dbStatus调用(或扩展?)的新任务run,然后重写args属性.

apply plugin: 'application'

run {
    args "server", "service.yml"
}


task(dbStatus, type: run) {
    args "db", "status", "service.yml
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为"run"它不是有效的任务类.有没有快速扩展任务并只是覆盖属性的方法?

更新:决议

不幸的是,我不得不定义一个全新的JavaExec任务,并重新创建run配置的逻辑.这是我想出的:

task(dbStatus, type: JavaExec) {
    main mainClassName
    classpath sourceSets.main.runtimeClasspath
    args "db", "status", "service.yml"
}
Run Code Online (Sandbox Code Playgroud)

我不认为这是完全相同的run,因为它不是针对jar我不相信的构建运行,但它适用于我的目的.

Pet*_*ser 5

任务不能以这种方式"扩展".相反,声明另一个任务并根据需要进行配置.(通常一次配置多个任务以避免代码重复.)