Gradle第7课:Gradle 中自定义任务的实现

本文详细介绍了Gradle中自定义任务类型的实现,包括简单任务和增强任务的区分,以及如何在build.gradle脚本中直接编写、在buildSrc目录下编写和以单独工程方式实现自定义任务类。通过实例展示了自定义任务类的创建、属性设置及使用方法,为读者深入理解Gradle任务增强功能提供了指导。
摘要由CSDN通过智能技术生成

需要准备

  • 一个熟悉的 IDE 开发工具
  • JDK 7及以上
  • Gradle 3.2以上

Gradle 的两种任务类型

在上一章中, 我们介绍了任务( Task )的一些高级用法,知道了 Gradle 对任务的功能增强很多,那么它是具体如何做到的呢?在揭晓答案之前,我们先来看看 Gradle 都支持哪两种类型的任务吧。

第一种为简单任务类型,就是我们在第四节中介绍的, 它的行为是定义在一个动作闭包方法中的,这种简单类型的任务适合在一个编译脚本中实现一种功能。

而第二种为增强的任务类型,它的行为被提前构建在了任务里,只是提供一些配置属性让我们去设置,这种任务可以在不的地方或不同的编译脚本中被重复使用,它正是我们在上一节中介绍过的任务类型。

这种高级的增强的任务类型是通过定义一个任务类来实现的,在 Gradle 中我们也可以自定义自己的增强类型类,我们可以使用多种语言来实现,比如 java、scala 等。不过 Gradle 本身是使用 Groovy 语言实现的,所以我在这里选择使用 Groovy 语言来实现。

实现自定义的任务类型

首先有三种方式来编写我们的任务类

  1. 在我们构建项目的 build.gradle 脚本中直接编写,这种方式的好处是任务类自动被编译加载到我们的 classpath 中,我们不需要额外做任何的事情,但是它有很明显的局限性,就是除了在包括它的脚本外别的地方无法复用。
  2. 在我们构建项目的rootProjectDir/buildSrc/src/main/groovy 目录下编写,Gradle 会自动编译到当前项目的 classpath 中,该项目下所有编译脚本都可以使用,但是除了当前项目之外的都无法复用。
  3. 以单独的工程方式编写,这个工程最终编译发布为一个 JAR 包,它可以在多个项目或不同的团队中共享使用。

然后我们先使用第一种方式编写一个简单的自定义任务类,而该自定义任务类是继承自DefaultTask的,同时为它添加一个行为方法,该方法需要使用TaskAction进行标注,这样 Gradle 就会在任务执行的时候默认调用它&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值