Gradle任务定义继承

时间:2012-12-11 16:30:34

标签: groovy gradle

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

test {

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

    maxParallelForks 5

    testLogging{
        exceptionFormat "full"
        showStackTraces = false
    }

    jvmArgs '-Xms128m', '-Xmx512m', '-XX:MaxPermSize=128m'
}

以及覆盖“include”或“maxParallelForks”部分等的另一个测试。

是否可以不创建新的Task类?

1 个答案:

答案 0 :(得分:11)

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

tasks.withType(Test) {
  include 'com/something/something/**
  ...
}

这可以一次性配置“Test”类型的所有任务。之后,您可以覆盖配置。

或者如果您不想设置所有任务,或者其中一些任务具有不同类型,您可以按照以下代码段列举它们。

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

请记住,您拥有Groovy的完整脚本功能,因此这里有很多选项......