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

时间:2014-07-29 23:38:17

标签: gradle dropwizard

我想定义一个名为dbStatus的新任务,它调用(或扩展?)run,并覆盖args属性。

apply plugin: 'application'

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


task(dbStatus, type: run) {
    args "db", "status", "service.yml
}

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

更新:解决方案

不幸的是,我不得不定义一个全新的JavaExec任务,并重新创建run配置的逻辑。以下是我提出的建议:

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

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

1 个答案:

答案 0 :(得分:5)

任务不能延长"通过这种方式。相反,声明另一个任务并根据需要进行配置。 (一次配置多个任务以避免代码重复是很常见的。)