gpt4 book ai didi

plugins - 在配置阶段使用 Gradle 项目扩展属性

转载 作者:行者123 更新时间:2023-12-05 00:26:13 25 4
gpt4 key购买 nike

在编写自定义 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 的所有用途将插件中的扩展扩展为闭包,但由于执行阶段的类转换问题,它们不会正确扩展。

谢谢你的帮助!

最佳答案

project.afterEvaluate 对我有用。

尝试:

project.afterEvaluate {
project.checkstyle {
configFile = project.codechecks.checkstyleConfig
}
}

关于plugins - 在配置阶段使用 Gradle 项目扩展属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22561482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com