Я работаю над проектом, логика сборки которого определена в градиенте и имеет файл 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() метод есть?
Прошу совета.
Почему вы это делаете, а не делать 'применяться с:' вызвать отдельный Gradle сценарий? –
ie: https://docs.gradle.org/current/userguide/userguide_single.html#sec%3aconfiguring_using_external_script –
@tim_yates Я новичок в Gradle, поэтому, пожалуйста, несите меня. Я пробовал ваше предложение, и я получаю сообщение об ошибке ' isAbcjob() 'не найден. И если вы предлагаете переместить все методы, которые участвуют в определении конфигурации, в новый файл «other.gradle», то я думаю, что это будет очень сложно, поскольку существует так много методов. Кроме того, эти методы также принимают участие в определении логики построения. Пожалуйста, совет, и если вы могли бы объяснить небольшую подробность о том, почему я не должен использовать configSlurper и почему я должен использовать предложенный вами подход, тогда это было бы здорово. – rapport89