微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何定义 gradle 任务依赖项 - 输入输出或依赖项?

如何解决如何定义 gradle 任务依赖项 - 输入输出或依赖项?

为了在 gradle 中正确运行增量构建支持,需要在每个(自定义)任务中定义“输入”和“输出”。

这是一种非常简洁的 gradle 方法来检查任务是否可以跳过,因为它是最新的。示例:

task myTaskA { 
   def someOutputDir = file("$buildDir/gen")

   // define task outputs (input not required here)
   outputs.dir someOutputDir

   doLast{
      // generate something into the defined output directory
      new File(someOutputDir,"dummy.txt").text = "Gradle sample" 
   }
}

task myTaskB {
   // Input of this task is dependent on the output of myTaskA
   inputs.files myTaskA

   doLast{
      // do something
   }
}

是的,这很好,另外一个好处是,我们不需要在任务“myTaskB”中声明显式依赖指令(dependsOn)。

dependsOn myTaskA 

这个指令不是必需的,因为我们有一个由输入声明定义的隐式依赖。

我认为在自定义任务中始终提供输入/输出定义以支持增量构建是一种很好的风格。

但是:这也意味着我们可以完全忽略dependsOn。

SO:我们什么时候应该更喜欢 dependsOn 而不是 inputs/outputs

也许如果没有输入或输出。是的,但还有其他用例吗?我一直在使用dependsOn,这对我来说现在已经过时了。你怎么看?

再见,祝你有个美好的一天,托尼

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。