在gradle中组合许多任务

时间:2016-10-11 20:24:45

标签: gradle

我想在一个新的任务名称(如mylocaldevflow)下同时运行一小组任务。

最好的方法是什么?

我可以制作一个自定义任务,如:

task localflow {
    description 'Task to ease local development.'
}

localflow.dependsOn snapshot
localflow.dependsOn javadoc
localflow.dependsOn build
localflow.dependsOn publishToMavenLocal

但是,当依赖任务不是最新时,这似乎会受到影响。

除了不是最新的,它只运行顶级的“构建”任务,并忽略构建中的子模块构建任务。

如果可能的话,我不想使用默认任务列表。

2 个答案:

答案 0 :(得分:0)

您打算尝试使用最新的房产。

看看这个:Resetting the UP-TO-DATE property of gradle tasks?

以上链接显示了如何始终运行任务。如果所有依赖任务都是最新的,那么它应该是一个便宜的运行,因此将其设置为始终运行可能是一个快速,简单的解决方案。如果您需要更复杂的逻辑,您可以深入了解gradle文档以找到所需内容:https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:up_to_date_checks

答案 1 :(得分:0)

要使这个复合任务在多模块构建中工作,而不是通过更新阻止执行,我做了:

task localflow {
    description 'Task to ease local development.'
    outputs.upToDateWhen { false }
}
subprojects {
    localflow.dependsOn snapshot
    localflow.dependsOn javadoc
    localflow.dependsOn build
    localflow.dependsOn publishToMavenLocal
}