自定义 Gradle 插件

2023-08-01 1315阅读

Gradle是Android构建过程中非常重要的一部分,但并不是所有的Android开发者都对Gradle足够熟悉,因为它在我们平时的业务开发中使用的频率相对较低。小编准备以自定义Gradle插件为入口,让大家一起来认识Gradle。首先创建一个模块,名称必须是buildSrc,选择Java Library。我们需要删除java文件夹并重建一个groovy. 文件夹以及groovy 文件。主要工作就是将我们的gradle插件编译成jar包,放到工程使用的地方。这里简单介绍一下自定义Gradle插件的方法。稍后我们会制作一些具有实际功能的插件,然后介绍给大家。

Gradle是Android构建过程中非常重要的一部分,但并不是所有的Android开发者都对Gradle足够熟悉,因为它在我们平时的业务开发中使用的频率相对较低。

小编准备以自定义Gradle插件为入口,让大家一起来认识Gradle。

自定义 Gradle 插件的方法

自定义 Gradle 的方式有以下三种:

1、直接在构建文件build.gradle中编写Plugin。 以这种方式编写的插件无法被其他构建文件引用

2、buildSrc项目在自己的项目中可以自由使用,但其他项目不能使用

3.在单独的项目中自定义Gradle Plugin,上传到远程maven库等,并在其他项目中添加依赖来引用此插件

Gradle 插件示例

1.在build.gradle中写入

apply plugin: DemoPlugin
class DemoPlugin implements Plugin{
 @Override
 void apply(Project target) {
 println("DemoPlugin in build.gradle")
 }
}

然后构建,就可以看到控制台输出的Log了。

本地仓库如何配置_gradle配置本地仓库_配置本地yum仓库

2.在buildSrc模块中创建

gradle配置本地仓库_本地仓库如何配置_配置本地yum仓库

首先创建一个模块,名称必须是buildSrc,选择Java Library。 然后模块中会自动生成一个java文件夹和对应的java文件。 我们需要删除java文件夹并重建一个groovy

文件夹以及groovy 文件。

gradle配置本地仓库_本地仓库如何配置_配置本地yum仓库

DemoPlugin.groovy:

package com.example
import org.gradle.api.Plugin
import org.gradle.api.Project
class DemoPlugin implements Plugin{
 @Override
 void apply(Project project){
 println("DemoPlugin in buildSrc Module")
 }
}

buildSrc 模块中的 build.gradle 文件:

apply plugin: 'groovy'
dependencies {
 implementation gradleApi()
 implementation localGroovy()
}

最后,只需在我们的应用程序下调用 build.gradle 即可:

apply plugin: com.example.DemoPlugin

3.生成可供其他项目复用的插件

首先,按照与之前相同的方式创建一个模块。 名称不是必需的。 让我们构建一个 gradle 插件:

DemoPlugin.groovy的创建同上。

配置本地yum仓库_gradle配置本地仓库_本地仓库如何配置

gradle配置本地仓库_配置本地yum仓库_本地仓库如何配置

主要区别在于模块中的build.gradle。 主要工作就是将我们的gradle插件编译成jar包,放到工程使用的地方。

我们直接放在项目的plugin_libs文件夹下:

apply plugin: 'groovy'
apply plugin: 'maven'
dependencies {
 compile gradleApi()
 compile localGroovy()
}
group='com.example.plugin'
version='0.0.1'
archivesBaseName='gradle-plugin'
uploadArchives{
 repositories {
 mavenDeployer{
 repository(url:uri('../plugin_libs'))
 }
 }
}

然后,点击uploadArchives生成对应的插件

配置本地yum仓库_gradle配置本地仓库_本地仓库如何配置

可以看到对应目录下已经有我们构建的插件了:

gradle配置本地仓库_本地仓库如何配置_配置本地yum仓库

接下来我们需要在我们的项目中依赖这个插件,项目根目录下的build.gradle:

buildscript {
 repositories {
 google()
 jcenter()
 maven{
 url(uri('./plugin_libs'))
 }
 }
 dependencies {
 classpath 'com.android.tools.build:gradle:3.2.1'
 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
 classpath 'com.example.plugin:gradle-plugin:0.0.1'
 }
}

最后调用的时候,依然是app下的build.gradle:

apply plugin: com.example.DemoPlugin

当然,我们可以将插件发布到公司仓库,这样其他项目也可以直接依赖。

这里简单介绍一下自定义Gradle插件的方法。 稍后我们会制作一些具有实际功能的插件,然后介绍给大家。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]