При создании пользовательского плагина Gradle, как можно получить доступ к свойствам расширения, определенным в потреблении build.gradle
, в фазе конфигурации настраиваемого плагина?Использовать свойства расширенного расширения проекта на этапе конфигурации
См. Следующий MWE.
build.gradle
apply plugin: 'codechecks'
codechecks {
checkstyleConfig = '/home/user/checkstyle.xml'
}
CodechecksPlugin.groovy
class CodechecksPlugin implements Plugin<Project> {
void apply(Project project) {
project.extensions.create('codechecks', CodechecksPluginExtension)
project.apply([ plugin: 'checkstyle' ])
project.checkstyle {
configFile = project.codechecks.checkstyleConfig
}
}
}
CodechecksPluginExtension.groovy
class CodechecksPluginExtension {
def checkstyleConfig = 'config/checkstyle/checkstyle.xml'
}
Требуемое поведение: плагин checkstyle
использует файл конфигурации, определенный в расширении build.gradle
codechecks
.
Фактическое поведение: Значение по умолчанию в CodechecksPluginExtension
используется, поскольку расширение build.gradle
codechecks
еще не оценено.
Я уже пробовал поместить все , использует расширения codechecks
в плагинах на закрытие, но они не будут правильно расширяться из-за проблем с классом на этапе выполнения.
Благодарим за помощь!