Gradle任务组织

时间:2013-06-18 05:12:39

标签: gradle

我在以可管理的方式组织构建时遇到问题。在我的gradle构建中,有大量任务,因为对于每个特定的工作元素,gradle需要该类型的任务。例如:复制文件gradle需要复制任务类型,而要压缩文件gradle需要Zip任务类型,删除几个文件gradle需要删除任务类型。 Javadoc,Jar,Ear等也需要他们的任务类型。最终构建有大量任务,并按特定顺序运行所有这些,我必须使用

taskA.mustRunAfter taskB

将这些规则应用于所有任务会使构建更难以管理。有没有办法在一个任务中编写所有这些工作元素(即复制文件,zip文件,创建jar和javadoc等)(如蚂蚁提供)

1 个答案:

答案 0 :(得分:2)

你有没有理由不使用dependsOn?您需要指定 lot 更多mustRunAfter语句,以实现dependsOn可以获得的相同排序。至少,这是我的经验。只有在明确依赖的订购问题时才使用mustRunAfter

例如,我们使用gradle来安装和卸载测试环境。如果两者都运行而不是install.mustRunAfter uninstall(进行刷新),但显然安装并不总是依赖卸载,所以我们使用mustRunAfter

也就是说,在一项任务中运行多种元素的一种方法是使用一系列蚂蚁目标。

task lotsOfStuffAtOnce {
    ext.paulaProp = 'brillant'
} << {
    ant.copy ...
    ant.zip ...
    ant.jar ...
}

我仍然认为总体上首选的理念是使用dependsOnmustRunAfter的适当组合的任务,但不同的情况需要不同的结果,所以我要判断谁?如果您正在寻求完成几个步骤,所有这些步骤都是一个工作单元(一个任务),上面的代码是我能想到的最简洁的方法。

如果您没有从gradle拨打蚂蚁的经验,the user docs会告诉您这是一次非常机械的转变。