问题描述
为了在 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 (将#修改为@)