使用“正常”的JavaExec gradle任务,例如,

task('integrationTest',
     type: JavaExec,
     moreConf...) {
    // Stuff
}

您可以像这样扩展继承编译和运行时配置,
configurations {
    integrationTestCompile.extendsFrom testCompile
    integrationTestRuntime.extendsFrom testRuntime
}

但是,如何处理通过Groovy定义的任务呢?即
def integrationTestTask = project.task(['type': JavaExec], 'integrationTest') {
    stuff
}

我正在写一个插件来减少重复的代码。

最佳答案

通过添加先决条件sourceSets integrationTestCompile和ìntegrationTestRuntime`,它们可以进行设置,

project.task(['type': JavaExec], 'integrationTest') {
    project.sourceSets {
        integrationTest {
            java {
                // set stuff....
            }
        }
    }

    project.configurations {
        // These two (integrationTestCompile/integrationTestRuntime) get created by the sourceSets block
        integrationTestCompile.extendsFrom testCompile
        integrationTestRuntime.extendsFrom testRuntime
    }
    // stuff
}

07-24 13:35