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

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...