2017-02-16 2 views
0

У меня есть проект со многими модулями (10+). Внутри каждого build.gradle файла есть задача:Динамически добавлять зависит от задачи градиента

task findbugs(type: FindBugs, dependsOn: ':MODULENAME:compileReleaseSources') { 
    ignoreFailures = true 
    classes = fileTree('build/intermediates/classes/release/') 
    source = fileTree('src/main/java/') 
    classpath = files() 
    ... and so on 
} 

поэтому я хотел, чтобы извлечь эту задачу и создать пользовательский файл script.gradle с этой задачей, и включить его в каждый build.gradle с помощью apply from: script.gradle.

И вот проблема: для этого необходимо включить MODULENAME в dependsOn. Когда у меня была задача внутри каждого build.gradle, проблем не было, потому что я только что закодировал соответствующее имя модуля (:app:compileReleaseSources, :firebase:compileReleaseSources и т. Д.).

Есть ли способ динамически добавить MODULENAME?

+0

Если применить сценарий к каждому модулю, я не думаю, что вам нужно 'приложение:' префикс. Вы пытались запустить его без префикса? –

+0

Вам не нужно добавлять его, если у вас есть каждый модуль, это правда. Но если вы извлекаете задачу в другой файл, и вы применяете ее к другому модулю build.gradle, вы должны добавить, иначе вы получите исключение: «Задача с путём не существует в модуле XXX». –

ответ

0

я придумал самым простым и надежным решением ...

def getModuleName() { 
     return displayName.substring(displayName.indexOf(":"), displayName.length() - 1) 
    } 
Смежные вопросы