有条件地将任务添加到gradle中的任务树
我有一个Gradle插件,带有一些配置约定有条件地将任务添加到gradle中的任务树,gradle,Gradle,我有一个Gradle插件,带有一些配置约定 myplugin { doSomethingOnBuild = true/false } 在插件源代码中,我使用doSomethingOnBuild有条件地将任务(后处理任务)添加到任务树中。该任务是有条件的,因为只有特定类型的生成才需要后处理任务 projects.gradle.projectsEvaluated { if(convention.doSomethingOnBuild == true) { // add postPro
myplugin {
doSomethingOnBuild = true/false
}
在插件源代码中,我使用doSomethingOnBuild有条件地将任务(后处理任务)添加到任务树中。该任务是有条件的,因为只有特定类型的生成才需要后处理任务
projects.gradle.projectsEvaluated {
if(convention.doSomethingOnBuild == true) {
// add postProcessTask to tree using dependsOn
}
}
我觉得使用doSomethingOnBuild很奇怪,因为我需要将它包装在一个project.gradle.projectsEvaluated中,以便在配置阶段使用约定参数,并且gradle警告我使用动态属性(不推荐使用)
有更好的方法吗?我不应该这样做吗?是否由用户调用后处理任务 有条件地添加任务并不常见,但如果没有更多的上下文,我不能说我会选择这个解决方案还是另一个解决方案(为任务添加
说明和组,分成多个插件等)。在任何情况下,插件推迟对构建模型的访问是正常的,而且通常是强制性的,而gradle.projectsEvaluated
确实是这样做的一种方法
关于“按需创建属性”的警告,这意味着有人正在:Test
项目上设置名为doSomethingOnBuild
的属性,尽管没有声明此类属性。这可能暗示插件有问题,或者可能有人试图在应用插件之前设置属性
如果您在严格的渐变意义上引用约定对象,请注意它们在很大程度上已被扩展对象所取代。您可以在中了解有关扩展的更多信息。(但这并不能解释弃用警告。)确切的警告是什么?按需创建属性(也称为动态属性)已被弃用,并计划在Gradle 2.0中删除。有关动态属性替换的信息,请阅读。不推荐使用的动态属性:“项目:测试”上的“doSomethingOnBuild”,值:“true”。谢谢!我的一个约定有拼写错误,因此出现了不推荐使用的动态属性问题(其他约定没有显示)。该插件确实使用约定对象,但这些对象是在我之前编写的,我读到它们被扩展对象替换,但还没有机会重构。