2014-09-18 4 views
3

У меня сложная система построения града, которую я унаследовал. Он работает очень хорошо, но включает в себя несколько плагинов (java, groovy, antlr, jacoco, причал и т. Д.). Я не мог понять, как добиться чего-то, поэтому я выполнил «./gradlew tasks -all». Оказывается, что была выполнена «сгенерированная» задача (она повторно сгенерировала код на основе antlr). Отлично, но это заняло много времени, и я понятия не имел.Как узнать, откуда взялась задача в градле?

Откуда взялась эта генерация задачи? Какую команду gradle я могу использовать, чтобы выяснить, откуда эта задача? Были пользовательские задачи antlr, которые имеют «dependOn» generate, поэтому я думаю, что это происходит из плагина antlr, но это трудно сказать.

ответ

0

В настоящее время невозможно найти все задачи для данного плагина, а также указать плагин для данной задачи. Пожалуйста, просмотрите docs - нет никакой связи между задачей и плагином.

Вы можете попробовать следующий фрагмент кода (он может быть подвержен ошибкам):

import java.lang.reflect.Modifier 

project.plugins.each { p -> 
    println "Plugin: ${p.getClass().name} " 
    p.getClass().declaredFields.findAll { 
     Modifier.isStatic(it.getModifiers()) && 
     it.name.endsWith('_TASK_NAME') && 
     it.type.simpleName.equals('String') 
    }.each { 
     println " -> ${it.get(p)}" 
    } 
    println '\n' 
} 
+0

Это то, что вы ищете? – Opal