Gradle学习第一篇——自定义Gradle插件
创始人
2024-03-21 04:04:17
0

纸上得来终觉浅,绝知此事要躬行。

自定义Gradle插件有三种方法,各有优劣处,同类博客文章很多但是有的语法已经过时了,笔者运行环境 Android Studio Dolphin && gradle-7.4-bin

文章目录

  • 第一种 build script (单文件生效)
  • 第二种 buildSrc project (同项目生效)
  • 第三种 standalone project (项目内外都生效)
  • 参考文档

第一种 build script (单文件生效)

在这里插入图片描述

apply plugin: GreetingPluginclass GreetingPlugin implements Plugin {void apply(Project project) {println 'Hello This is custom gradle plugin! by app'}
}

就是如此简单,但是缺点是这个插件只能在这个build script使用,完全无复用的能力,其他Module要是想用的话必须拷贝一份

第二种 buildSrc project (同项目生效)

在当前目录下创建buildSrc目录,创建完毕之后Sync一下
在这里插入图片描述

 mkdir -p buildSrc/src/main/java cd buildSrc  touch build.gradle

build.gradle 中复制如下代码
在这里插入图片描述

plugins {id 'java-gradle-plugin' // Java Gradle Plugin
}gradlePlugin {plugins {modularPlugin {// Plugin id.id = 'com.gerry.learn'// Plugin implementation.implementationClass = 'com.gerry.learn.GreetingPlugin'}}
}
package com.gerry.learn;import org.gradle.api.Plugin;
import org.gradle.api.Project;public class GreetingPlugin implements Plugin {@Overridepublic void apply(Project project) {System.out.println(" Hello This is custom gradle plugin by buildSrc");}
}

配置完成去App中运行测试一下
在这里插入图片描述
这种稍微麻烦点,但是可以做到同项目内plugin复用了。

第三种 standalone project (项目内外都生效)

这个和第二种有些地方是类似的
首先创建一个Library Module
在这里插入图片描述
剩下的步骤和 Mac搭建本地Maven仓库For Android Studio 中的上传Maven仓库类似

libplugin的build.gradle文件如下


plugins {id 'java-gradle-plugin' // 自动化生成 plugin id 使用id 'maven-publish' // 上传aar到maven使用
}gradlePlugin {plugins {modularPlugin {// Plugin id.id = 'com.gerry.learn'// Plugin implementation.implementationClass = 'com.gerry.learn.GreetingPlugin'}}
}afterEvaluate {publishing {//发布的 jar 包配置publications {release(MavenPublication) {groupId = 'com.gerry.learn'artifactId = 'GreetingPlugin'version = '1.0.0'}}//仓库地址配置repositories {maven {// test, upload local maven repository//url = "file:" + new File(project.rootProject.rootDir, "local_test_repo").pathurl = uri('../localMavenRepository/snapshot')}}}
}

在这里插入图片描述

class GreetPlugin : Plugin {override fun apply(p0: Project) {println("Hello This custom plugin fom standalone project !")}
}

在这里插入图片描述
这样就把一个plugin发布完了,接下来看下项目中该如何使用

参考文档

Developing Custom Gradle Plugins 官方文档永不过时~
Gradle 系列(2)手把手带你自定义 Gradle 插件
Android 自定义Gradle插件的3种方式

令人头疼的Crash问题

Gradle 上传aar到Maven

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...