gpt4 book ai didi

gradle - 有条件地将任务添加到gradle的任务树中

转载 作者:行者123 更新时间:2023-12-03 05:17:59 24 4
gpt4 key购买 nike

我有一个Gradle插件,其中包含一些配置约定。

myplugin {
doSomethingOnBuild = true/false
}

在插件源中,我正在使用doSomethingOnBuild有条件地将任务(postProcessTask)添加到任务树。该任务是有条件的,原因是postProcessTask仅对于特定类型的构建是必需的。
projects.gradle.projectsEvaluated {
if(convention.doSomethingOnBuild == true) {
// add postProcessTask to tree using dependsOn
}
}

我对使用doSomethingOnBuild感到很奇怪,因为我需要将其包装在project.gradle.projectsEvaluated中,以便在配置阶段可以使用Conventional参数,并且gradle还会警告我有关动态属性的使用(已弃用)

有一个更好的方法吗?我不应该这样做吗?是否由用户来调用postProcessTask?

最佳答案

有条件地添加任务并不是很常见,但是没有更多的上下文,我不能说我是否愿意使用此解决方案或其他解决方案(为任务添加descriptiongroup,分为多个插件,等等)。在任何情况下,插件都会推迟对构建模型的访问,这是正常的,并且通常是强制性的,而gradle.projectsEvaluated确实是这样做的一种方法。

关于“按需创建属性”的警告,这意味着有人在doSomethingOnBuild项目上设置了名为:Test的属性,尽管未声明任何此类属性。这可能暗示插件有问题,或者有人在应用插件之前尝试设置属性。

如果您严格按照Gradle的意义来指代约定对象,请注意,它们在很大程度上已被扩展对象代替。您可以在Gradle User Guide中了解有关扩展的更多信息。 (不过,这并不能解释弃用警告。)

关于gradle - 有条件地将任务添加到gradle的任务树中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21095942/

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