build.gradle как применить замыкание из другого файла

У меня есть закрытие определено в другом файле build.gradle, который называется other.gradle. Вот содержимое:

Closure callback =  {

    productFlavors {  
        ...
        devel {
            ...
        }

        prod {
            ...
        }
    }
}

Теперь в моем файле build.gradle я хочу назвать это замыкание следующим образом:

apply from: 'other.gradle'
productFlavors(callback());

но я продолжаю получать сообщение об ошибке, что callback() не может быть найден. Оба файла находятся в одном каталоге. Моя проблема в том, как мне получить файл build.gradle, чтобы увидеть закрытие обратного вызова в файле "other.gradle".

1 ответ

Решение

Это должно быть сделано следующим образом:

other.gradle

project.ext.callback = { c ->
    println(c)
}

build.gradle

apply from: 'other.gradle'

callback('a')

Или в тех же случаях callback должны быть направлены через project.instanceнапример, project.callback('a'),

Другие вопросы по тегам