Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有条件地将任务添加到gradle中的任务树_Gradle - Fatal编程技术网

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

有条件地将任务添加到gradle中的任务树,gradle,Gradle,我有一个Gradle插件,带有一些配置约定 myplugin { doSomethingOnBuild = true/false } 在插件源代码中,我使用doSomethingOnBuild有条件地将任务(后处理任务)添加到任务树中。该任务是有条件的,因为只有特定类型的生成才需要后处理任务 projects.gradle.projectsEvaluated { if(convention.doSomethingOnBuild == true) { // add postPro

我有一个Gradle插件,带有一些配置约定

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”。谢谢!我的一个约定有拼写错误,因此出现了不推荐使用的动态属性问题(其他约定没有显示)。该插件确实使用约定对象,但这些对象是在我之前编写的,我读到它们被扩展对象替换,但还没有机会重构。