网站建设哪家好公司,google官网入口注册,wordpress控制文章显示,wordpress用什么空间1. 前言
前文中#xff0c;我们介绍了在Android中#xff0c;如何基于Gradle 8.2#xff0c;创建Gradle插件。这篇文章#xff0c;我们以buildSrc的方式来创建Gradle插件。此外#xff0c;还介绍一种用Cmd命令行的方式#xff0c;来创建独立的Gradle插件的方式。
1.1 本…1. 前言
前文中我们介绍了在Android中如何基于Gradle 8.2创建Gradle插件。这篇文章我们以buildSrc的方式来创建Gradle插件。此外还介绍一种用Cmd命令行的方式来创建独立的Gradle插件的方式。
1.1 本文环境
Android Studio 版本 : Android Studio Iguana | 2023.2.1Gralde版本 : gradle 8.4
2. buildSrc插件
buildSrc是一个特殊的源代码集通常用于存放项目内部使用的自定义Gradle插件和任务。它的主要优势在于它会自动被Gradle识别并编译然后Android Studio自动会将其添加到构建脚本的classpath中因此无需手动添加或配置。这使得在项目的多个模块之间共享构建逻辑变得非常方便。此外由于buildSrc是项目的一部分因此它可以直接访问和使用项目中的其他代码和资源。
2.1 buildSrc插件和独立Gradle插件的区别
相比之下单独的Gradle插件通常作为独立的项目来开发并通过二进制形式如jar包发布到仓库中供其他项目使用。这种插件通常具有更广泛的适用性因为它们设计用于多个项目之间的复用。然而开发这种插件需要更多的配置和发布步骤并且它们不会直接访问到使用它们的项目的内部代码和资源。
2.2 新建buildSrc目录
在项目的根目录下新建buildSrc文件夹并添加如下的项目结构 buildSrc目录下的build.gradle中写下如下的内容
plugins {id java-gradle-plugin
}gradlePlugin {plugins {greeting {id com.heiko.buildsrc.plugin //这里是插件的IDimplementationClass com.heiko.buildsrc.MyPlugin //这里是包名类名}}
}这里需要注意 Plugin用java语言编写那么包名的上一级为java文件夹plugin用java-gradle-plugin
plugins {id java-gradle-plugin
}Plugin用groovy语言编写那么包名的上一级为groovy文件夹plugin用groovy
plugins {id groovy
}Plugin用kotlin语言编写那么包名的上一级为kotlin文件夹plugin用org.gradle.kotlin.kotlin-dsl
plugins {id(org.gradle.kotlin.kotlin-dsl) version 4.1.2
}使用 kotlin-dsl 插件的时候需要mavenCentral仓库
repositories {mavenCentral()
}2.3 依赖插件
我们Sync下项目Android Studio自动会将其添加到构建脚本的classpath中。 接着我们只需要在app的build.gradle中去应用这个插件就可以使用了。
plugins {//省略了其他插件...//应用我们自定义的com.heiko.buildsrc.plugin插件id(com.heiko.buildsrc.plugin) apply true
}2.4 查看日志
再次Sync下项目可以看到如下日志就表明我们配置buildSrc插件成功了 !
//...省略了其他日志 ...Configure project :app
这是我的第一个Gradle插件:MyPlugin.apply! Task :prepareKotlinBuildScriptModel UP-TO-DATE
greeting config//...省略了其他日志 ...BUILD SUCCESSFUL in 14s
4 actionable tasks: 2 executed, 2 up-to-date3.使用build.gradle.kts来新建buildSrc插件
使用build.gradle.kts和使用build.gradle基本是一样的只需要将build.gradle修改为build.gradle.kts然后将里面的代码从Groovy修改为Kotlin即可
plugins {//Plugin用Java语言编写时需添加java-gradle-plugin //等同于 id(java-gradle-plugin) apply true//Plugin用Groovy语言编写时需添加groovy //等同于 id(groovy) apply true//Plugin用Kotlin语言编写时需添加kotlin-dsl //等同于 id(org.gradle.kotlin.kotlin-dsl) version 4.1.2// 也可以用 id(org.jetbrains.kotlin.jvm) version 1.9.10 apply true (不建议这个只有Kotlin的语法而没有Kotlin DSL的语法)}//使用 kotlin-dsl / org.jetbrains.kotlin.jvm 的时候需要mavenCentral仓库
repositories {mavenCentral()
}gradlePlugin {plugins {create(greeting) {id com.heiko.buildsrc.plugin//Java插件主类//implementationClass com.heiko.buildsrc.MyPlugin//Groovy插件主类//implementationClass com.heiko.buildsrc.MyPluginGroovy//Kotlin插件主类implementationClass com.heiko.buildsrc.MyPluginKotlin}}
}4. 更方便的新建插件的方式 : 命令行
除了在Android Studio中手动新建插件我们还可以通过命令行来新建插件。
4.1 新建文件夹
首先需要新建一个文件夹在文件夹里复制好如下内容gralde文件夹、gradlew、gradlew.bat这三个直接从一个现成的Android项目中复制过来就行。
4.2 运行命令行
打开cmd进入该文件夹然后执行如下命令下述命令选其一即可。
4.2.1 创建使用Java的插件
gradlew init --type java-gradle-plugin4.2.2 创建使用Groovy的插件
gradlew init --type groovy-gradle-plugin4.2.3 创建使用Kotlin的插件
gradlew init --type kotlin-gradle-plugin4.3 完成选项
执行命令后会有几个问题选项我们按需进行选择最终看到BUILD SUCCESSFUL就表示新建插件成功了 生成后的文件如下 这样子就很快的完成了一个Gradle独立插件的新建了。
5. Android Gradle系列文章
Android Gradle 开发与应用 (一) : Gradle基础-氦客-CSDN博客 Android Gradle开发与应用 (二) : Groovy基础语法-CSDN博客 Android Gradle开发与应用 (三) : Groovy语法概念与闭包-CSDN博客 Android Gradle开发与应用 (四) : Gradle构建与生命周期-CSDN博客 Android Gradle开发与应用 (五): 基于Gradle 8.2创建Gradle插件-CSDN博客 Android Gradle 开发与应用 (六) : 创建buildSrc插件和使用命令行创建Gradle插件-CSDN博客
6. 参考文章
Using Plugins (gradle.org) Gradle用户手册 - Gradle8.1.1中文文档 - API参考文档 - 全栈行动派 (qzxdp.cn) 编写 Gradle 插件 | Android Studio | Android Developers (google.cn) Android Gradle8.0版本新建Gradle插件 - 掘金 (juejin.cn) Gradle基础到进阶 - yechaoa的专栏 - 掘金 (juejin.cn) 【Gradle-8】Gradle插件开发指南 - 掘金 (juejin.cn) 【Gradle-9】Gradle插件发布指南 - 掘金 (juejin.cn) Gradle自定义插件实践与总结 - 掘金 (juejin.cn) 创建Gradle插件记录 - 掘金 (juejin.cn) 配置 build | Android Studio | Android Developers (google.cn)