开发效率优化之自动化构建系统Gradle(二)下篇

本文详细介绍了Gradle自定义插件的三种创建方式:构建脚本内建、buildSrc模块和独立项目方式。通过创建、应用和发布Gradle插件,实现了构建逻辑和任务的复用。同时,文中提供了实际操作步骤,包括目录结构、源码创建和构建命令,旨在帮助开发者提升构建效率。
摘要由CSDN通过智能技术生成

11/10号文档资料已全面更新!;《【阿里P7】移动互联网架构师进阶教程+BAT面试题》,可点击下方链接直接打开:
【阿里P7】移动互联网架构师进阶高级教程+BAT面试题
本篇文章将继续从自定义 Gradle 插件开发来介绍自动化构建系统Gradle:

Gradle 插件简介

Gradle 插件是一个能够将 Gradle 的构建逻辑(build logic)和构建任务(build task)打包到一起,以便在多个项目的构建脚本(build.gradle)中应用(apply)的工具。

例如,build.gradle 构建脚本文件内 apply plugin: 'java'apply plugin: 'com.android.application' 中的 javacom.android.application 就是官方提供的 Gradle 插件,通过应用这些插件,可以丰富项目的构建任务与构建逻辑。

除官方提供的插件外,Gradle 还允许开发者定义自己的 Gradle 插件。开发者可以根据实际需求定义自己的构建逻辑和构建任务,将其打包为 Gradle 插件,从而在多个项目的构建脚本中复用。此外,还可以将自定义的 Gradle 插件发布到 plugin portal或其他仓库中,更为方便的分享给他人使用。

Gradle 插件对编程语言没有太多限制,只要是能够被编译为 JVM 字节码的编程语言,都能用来编写 Gradle 插件。Gradle-API 的被设计为对 Groovy、Java、Koltin 友好的,通常情况下,使用 Java 或 Kotlin 这类静态类型语言实现的 Gradle 插件的性能要比使用 Groovy 实现的相同常见的性能更好。

开始之前

Gradle 作为一个普通的构建工具,本身并不依赖任何可视化 GUI 工具。为简化步骤,本文将采用命令行方式来完成自定义 Gradle 插件的演示。在开始之前,需先将 gradle 命令添加到系统环境变量中。

若读者在 IDEA / Android Studio 使用过 gradle ,则可在当前用户目录下找到 gradle 命令,具体路径如下

  • Mac:/Users/当前用户名/.gradle/wrapper/dists/gradle版本/沙盒路径/gradle版本/bin
  • Win:C:\Users\当前用户名\.gradle\wrapper\dists\gradle版本\沙盒路径\gradle版本\bin

若读者的电脑中尚未安装 gradle,则可在 Gradle 官方 下载安装。

以笔者使用的环境为例,gradle 命令所在目录为

~/.gradle/wrapper/dists/gradle-5.4.1-all/3221gyojl5jsh0helicew7rwx/gradle-5.4.1/bin

将 gradle 命令所在目录添加到环境变量中

  • Mac:在 ~/.bashrc 中添加
export PATH=~/.gradle/wrapper/dists/gradle-5.4.1-all/3221gyojl5jsh0helicew7rwx/gradle-5.4.1/bin:$PATH
  • Win:在系统环境变量中添加
C:\Users\用户名\.gradle\wrapper\dists\gradle-5.4.1-all\805usxkvhgx6e1wbo8o64g0tx\gradle-5.6.1\bin

牛刀小试

在命令行中输入

gradle --version

得到如下输出则表示 gradle 环境设置成功

------------------------------------------------------------
Gradle 5.4.1
------------------------------------------------------------

Build time:   2019-04-26 08:14:42 UTC
Revision:     261d171646b36a6a28d5a19a69676cd098a4c19d

Kotlin:       1.3.21
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_171 (Oracle Corporation 25.171-b11)
OS:           Mac OS X 10.14.6 x86_64

自定义 Gradle 插件

自定义 gradle 插件可以在以下三个地方创建,分别是:

  1. 构建脚本内
  2. buildSrc 模块内
  3. 单独项目

构建脚本内建方式

build.gradle 内直接创建 Gradle 插件

优点:

  • build.gradle 中创建的插件将被自动编译并包含在 classpath 中,使用时无需在构建脚本内指定 classpath

缺点:

  • 此插件仅在当前构建脚本中有效,对外部文件不可见,无法在当前构建脚本以外的其他地方复用此插件

示例

1. 创建 BuildInDemo 目录
mkdir BuildInDemo
2. 在 BuildInDemo 目录内中新建 build.gradle 文件
cd BuildInDemo
touch build.gradle

使用 tree 命令查看创建后的目录结构,如下所示

BuildInDemo
.
└── build.gradle

0 directories, 1 file
3. 在 BuildInDemo/build.gradle 内创建并应用 Gradle 插件,代码如下
// 1. 创建插件 BuildInPlugin
class BuildInPlugin implements Plugin<Project> {
    // 2. 应用插件时执行此函数
    @Override void apply(Project target) {
        println("hello form build-in plugin")
    }
}
//3. 应用插件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值