在Gradle中动态添加依赖项?

时间:2017-01-18 13:29:05

标签: gradle groovy dependencies

Adob​​e Illustrator可以创建一堆具有不同分辨率的文件,并将它们命名为[ 'ldpi', 'mdpi', 'hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi' ].each { String type = it task "copyAi_$it"(type: Copy) { String ending = '_Artboard 1' + type + '.png' from 'graphics_design/export/' include '*' + ending rename { String fileName -> fileName.replace( ending, '.png' ) } into 'app/src/main/res/drawable-' + type } } task copyAiExport copyAiExport.dependsOn copyAi_ldpi, copyAi_mdpi, copyAi_hdpi, copyAi_xhdpi, copyAi_xxhdpi, copyAi_xxxhdpi 并放在同一目录中。同时,Android希望图像具有相同的名称并位于不同的目录中。

我写了gradle脚本来进行文件复制和重命名:

copyAliExport

如您所见,我将明确地编写整个任务{{1}}的所有依赖项,枚举所有生成的任务。

我可以动态添加依赖项吗?

我在文档中找不到可理解的例子。

1 个答案:

答案 0 :(得分:2)

你在找什么:

task all
[
    1, 2, 3, 4,
].each { n ->

    def t = task "task$n" {
      doLast {
        println n
      }
    }

    all.dependsOn << t
}