Groovy 梯度任务定义继承

Groovy 梯度任务定义继承,groovy,gradle,Groovy,Gradle,是否可以从一个任务定义继承另一个任务定义?我想做的是创建一些测试配置文件,这样我就有了默认的测试- test { include 'com/something/something/**' exclude 'com/something/else/**' maxParallelForks 5 testLogging{ exceptionFormat "full" showStackTraces = false }

是否可以从一个任务定义继承另一个任务定义?我想做的是创建一些测试配置文件,这样我就有了默认的测试-

test {

    include 'com/something/something/**'
    exclude 'com/something/else/**'

    maxParallelForks 5

    testLogging{
        exceptionFormat "full"
        showStackTraces = false
    }

    jvmArgs '-Xms128m', '-Xmx512m', '-XX:MaxPermSize=128m'
}
还有另一个测试覆盖了“include”或“maxpallelforks”部分等


是否可以不创建新的任务类

您可以一次性配置所有这些任务,前提是它们使用以下结构属于同一类型:

tasks.withType(Test) {
  include 'com/something/something/**
  ...
}
这将一次性配置“测试”类型的所有任务。之后,您可以覆盖配置

或者,如果您不想设置所有任务,或者其中一些任务具有不同的类型,您可以在下面的代码段中枚举它们

["test","anotherTestTask"].each { name ->
  task "$name" {
    include ...
  }
}

请记住,您拥有Groovy的全部脚本功能,因此这里有很多选项…

谢谢,我想我将使用您的第一个构造“tasks.withType(Test)*.configure…”。我仍然很好奇,是否有一种方法可以构建一些继承树——有一些全局测试定义,然后一些testSuite1扩展全局测试,然后一些testSuite2扩展testSuite2,。。。我知道我可以做到这一点,但我仍然希望看到一些不错的DSL支持。语法可以简化为
tasks.withType(Test){…}
task“$t{…}
。我们认为,显式配置规则是比具有所有隐藏语义的继承机制更好的方法。因此,我们没有计划添加一个。感谢您的简化,彼得:)