如何组合不同任务的相同代码

How to combine same code of different tasks

此问题与

相关

在gradle中,我有这样一段配置:

idea {
    module {
        excludeDirs -= file("$buildDir/")
        sourceDirs += file(generatedSrcDir)
    } 
}

我还有一个用于 eclipse 的代码相同。

问题:

idea, eclipse {
    module {
        excludeDirs -= file("$buildDir/")
        sourceDirs += file(generatedSrcDir)
    }
}

这可能吗?

你需要做的可以这样写:

apply plugin: 'idea'
apply plugin: 'eclipse'

ext.generatedSrcDir = project.file('.')

[idea, eclipse].each {
    configure(it) {
        module {
            excludeDirs -= file("$buildDir/")
            sourceDirs += file(generatedSrcDir)
        }
    }
}

但是由于 eclipse 扩展没有公开 module method/field 它不会工作。不幸的是,您需要分别配置 ideaeclipseHere 是关于为 eclipse 配置附加源文件夹的问题。