Gradle 格拉德尔任务组织

Gradle 格拉德尔任务组织,gradle,Gradle,我在以可管理的方式组织构建时遇到问题。在我的gradle构建中,有大量的任务,因为对于每个特定的工作元素,gradle都需要一个该类型的任务。例如:复制文件需要复制任务类型,压缩文件需要压缩任务类型,删除少量文件需要删除任务类型。Javadoc、Jar、Ear等也需要它们的任务类型。最终构建有大量的任务,要按特定的顺序运行所有这些任务,我必须使用 taskA.mustRunAfter taskB 将这些规则应用于所有任务,会使生成更难管理。是否有一种方法可以在一个任务(如ant中提供的)中编程

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

taskA.mustRunAfter taskB

将这些规则应用于所有任务,会使生成更难管理。是否有一种方法可以在一个任务(如ant中提供的)中编程所有这些工作元素(即复制文件、zip文件、创建jar和javadoc等)

是否有理由不使用
dependsOn
?您需要指定更多的
mustRunAfter
语句,以实现与
dependsOn
相同的顺序。至少,这是我的经验。仅当存在明确不属于依赖项的订购问题时,才使用
mustRunAfter

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

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

task lotsOfStuffAtOnce {
    ext.paulaProp = 'brillant'
} << {
    ant.copy ...
    ant.zip ...
    ant.jar ...
}
任务批次{
ext.paulaProp=‘brillant’

}非常感谢您的解决方案。调用ant任务会起作用,但
dependsOn
不会给出确切的顺序。dependsOn的顺序将完全尊重您告诉它的内容,但肯定有一些场景需要自由使用mustRunAfter。我相信,一点点尝试和错误就会解决的!