设置不在任务之间

时间:2018-05-29 07:19:50

标签: gradle groovy

我试图通过删除重复来减少构建脚本代码。但是,我无法找到一种方法让它发挥作用。

这就是我今天所拥有的(但更多的重复):

task testA(type: Test) {
    exclude 'folderA/*'
    environment 'MYVAR', 'myvar'
    ...
}
task testB(type: Test) {
    exclude 'folderA/*'
    environment 'MYVAR', 'myvar'
    ...
}

我试图通过这样做来减少重复:

task setupTest(type: Test) {
    exclude 'folderA/*'
    environment 'MYVAR', 'myvar'
}

task testA(type: Test) {
        ...
}
testA.dependsOn setupTest

task testB(type: Test) {
        ...
}
testB.dependsOn setupTest

块setupTest在testA和testB之前运行,但exclude和env变量丢失(使用print语句测试)。

我怎样才能达到这样的目标?

1 个答案:

答案 0 :(得分:0)

您的自定义测试任务怎么样?

class MyTest extends Test {
    @TaskAction
    def init() {
        exclude 'folderA/*'
        environment 'MYVAR', 'myvar'
    }
}

task testA(type: MyTest) {
    // ...
}

task testB(type: MyTest) {
    // ...
}