Gradle中的自定义任务和增强任务的概念有什么区别?

时间:2014-08-18 08:23:14

标签: gradle task concept

我经常在Gradle文档中遇到这些概念。他们之间有什么区别?

据我所知,自定义任务是封装了一些逻辑的类,但什么是增强任务,它们之间有什么区别?

2 个答案:

答案 0 :(得分:2)

Gradle中的simple taskDefaultTask的一个实例,并且不会开箱即用。要使其执行某些操作,您必须在构建脚本中将任务定义添加到任务定义中。

enhanced task是不同类的实例(例如,复制任务是Copy的实例)并且具有开箱即用的一些行为。您只需要在构建脚本中配置该行为(例如,告诉它从哪里复制)

custom task是一项增强型任务,是您自己编写的类的实例。

答案 1 :(得分:1)

增强任务在Gradle手册中定义为:

  

Gradle支持增强的任务,即具有各自属性和方法的任务。这与您习惯使用Ant目标的方式完全不同。此类增强任务由您提供或由Gradle提供。

它还说:

  

Gradle支持两种类型的任务。一种这样的类型是简单的任务,您可以使用操作闭包来定义任务。我们在第6章构建脚本基础知识中已经看到了这些。对于此类任务,操作闭包确定任务的行为。此类任务适用于在构建脚本中实现一次性任务。

     

另一种类型的任务是增强任务,其中行为内置于任务中,该任务提供了一些可用于配置行为的属性。我们在第15章,有关任务的更多信息中看到了这些。大多数Gradle插件都使用增强的任务。通过增强任务,您不需要像处理简单任务那样实现任务行为。您只需声明任务并使用其属性配置任务。通过这种方式,增强的任务允许您在许多不同的位置重用一段行为,可能跨越不同的构建。

     

增强任务的行为和属性由任务类定义。声明增强任务时,可以指定任务的类型或类。