前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >12--Gradle进阶 - Gradle任务的类型

12--Gradle进阶 - Gradle任务的类型

作者头像
Devops海洋的渔夫
发布2023-09-01 08:52:50
1990
发布2023-09-01 08:52:50
举报
文章被收录于专栏:Devops专栏Devops专栏

12--Gradle进阶 - Gradle任务的类型

任务类型

前面我们定义的task 都是DefaultTask 类型的,如果要完成某些具体的操作完全需要我们自己去编写gradle 脚本,势必有些麻烦,那有没有一些现成的任务类型可以使用呢?有的,Gradle 官网给出了一些现成的任务类型帮助我们快速完成想要的任务,我们只需要在创建任务的时候,指定当前任务的类型即可,然后即可使用这种类型中的属性和API 方法了。

常见任务类型

该类型任务的作用

Delete

删除文件或目录

Copy

将文件复制到目标目录中。此任务还可以在复制时重命名和筛选文件。

CreateStartScripts

创建启动脚本

Exec

执行命令行进程

GenerateMavenPom

生成 Maven 模块描述符(POM)文件。

GradleBuild

执行 Gradle 构建

Jar

组装 JAR 归档文件

JavaCompile

编译 Java 源文件

Javadoc

为 Java 类 生 成 HTML API 文 档

PublishToMavenRepository

将 MavenPublication 发布到 mavenartifactrepostal。

Tar

组装 TAR 存档文件

Test

执行 JUnit (3.8.x、4.x 或 5.x)或 TestNG 测试。

Upload

将 Configuration 的构件上传到一组存储库。

War

组装 WAR 档案。

Zip

组装 ZIP 归档文件。默认是压缩 ZIP 的内容。

如果想看更详细的gradle 自带Task 类型,请参考官方文档:

https://docs.gradle.org/current/userguide/custom_tasks.html#header

1686273812894

操作案例

1.编写 Delete 类型的任务
代码语言:javascript
复制
// 任务类型
// 编写 Delete 类型的任务:删除 build 目录
tasks.register('myClean', Delete) {
    delete buildDir
}

我们希望可以删除 build 的目录,如下:

1686273999540

执行该任务,如下:

代码语言:javascript
复制
gradle myClean

1686274054276

可以看到我们已经成功将 project 的 build 目录删除了,下面我们再来看看如何自定义任务。

2.自定义 task 类型
代码语言:javascript
复制
/**
 * 1.创建任务 MyDefinitionTask,任务类型为 CustomTask
 * 
 * 2.自定义 CustomTask 的类型
 * - 该任务会执行 doFirst、doLast
 */
def myTask = task MyDefinitionTask(type: CustomTask)
myTask.doFirst() {
    println "task 执行之前 执行的 doFirst方法"
}
myTask.doLast() {
    println "task 执行之后 执行的 doLast方法"
}

// 3. 继承DefaultTask,实现CustomTask
class CustomTask extends DefaultTask {
    //@TaskAction表示Task本身要执行的方法
    @TaskAction
    def doSelf() {
        println "Task 自身 在执行的in doSelf"
    }
}

执行如下:

代码语言:javascript
复制
gradle MyDefinitionTask
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-06-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 12--Gradle进阶 - Gradle任务的类型
    • 任务类型
      • 操作案例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档