2015-10-13 3 views
0

Я работаю над проектом, логика сборки которого определена в градиенте и имеет файл build.gradle для него. Теперь мы хотели бы управлять свойством проекта, используя конфигурацию Groovy's Sluper. И, я поместил файл config.groovy в папку, которая содержит весь класс Helper для проекта. Содержание файла conf.groovy ниже:Как groovy-файл ConfigSlurper может вызывать методы, определенные в build.gradle?

categories { 
includeCategories = defaultIncludeCategories() 
excludeCategories = defaultExcludeCategories() 
} 

String defaultIncludeCategories() { 
    def include = 'default' 
    if(isAbcJob()) { 
     include = 'tier0' 
    } 
    logger.info "defaultIncludeCategories: $include" 
    include 
} 

Теперь, как вы можете видеть, что есть имя метода isAbcJob(), что мне нужно использовать в конфигурационном файле, но этот метод присутствует в build.gradle , который является файлом, который вызывает conf.groovy-файл для управления собственностью.

Нижняя строка - как скрипт conf.groovy знал бы, где isAbcJob() метод есть?

Прошу совета.

+0

Почему вы это делаете, а не делать 'применяться с:' вызвать отдельный Gradle сценарий? –

+0

ie: https://docs.gradle.org/current/userguide/userguide_single.html#sec%3aconfiguring_using_external_script –

+0

@tim_yates Я новичок в Gradle, поэтому, пожалуйста, несите меня. Я пробовал ваше предложение, и я получаю сообщение об ошибке ' isAbcjob() 'не найден. И если вы предлагаете переместить все методы, которые участвуют в определении конфигурации, в новый файл «other.gradle», то я думаю, что это будет очень сложно, поскольку существует так много методов. Кроме того, эти методы также принимают участие в определении логики построения. Пожалуйста, совет, и если вы могли бы объяснить небольшую подробность о том, почему я не должен использовать configSlurper и почему я должен использовать предложенный вами подход, тогда это было бы здорово. – rapport89

ответ

0

Я нашел следующий вопрос, который был задан на форумах Gradle очень полезен. И, похоже, методы, что доступ к другой Gradle скрипта не представляется возможным, если вы к ним доступ через задачи:

https://discuss.gradle.org/t/multiple-apply-froms-dont-seem-to-import-all-methods/2274/6

+0

Пожалуйста, добавьте соответствующую часть связанного ответа здесь. – Opal

Смежные вопросы